Nie jestem ekspertem i Ruby można poczynić pewne błędy składniowe, ale można uzyskać ogólne pojęcie:
if @driver.find_elements(:link, "Save").size() > 0
Ten kod nie rzucać NoSuchElementException
Ale ta metoda "zawiesić się" na chwilę, jeśli masz ponad zero i nie ma żadnych elementów na stronie. Drugi problem - jeśli element istnieje na stronie, ale nie jest wyświetlany, dostaniesz true
.
Aby obejść próby utworzenia metoda:
def is_element_present(how, what)
@driver.manage.timeouts.implicit_wait = 0
result = @driver.find_elements(how, what).size() > 0
if result
result = @driver.find_element(how, what).displayed?
end
@driver.manage.timeouts.implicit_wait = 30
return result
end
Dzięki, używam "ratunku" i rozwiązałem ten problem – Thanh
Gr8, aby go usłyszeć ... Jeśli to pomogło, powinieneś zaakceptować odpowiedź. –
Nie mam wystarczającej reputacji (minimum 15), aby zaakceptować twoją odpowiedź teraz, ale pozwól mi, że tym razem będę Ci winien, Przyjmuję twoją odpowiedź później :) – Thanh