Webdriver пинает ведро на "find_element" - PullRequest
2 голосов
/ 02 марта 2012

Я использую Ruby-интерпретацию Webdriver.Теперь веб-страница, на которую я смотрю, может содержать или не содержать определенный элемент.Если это не так, я хотел бы искать другой элемент.Однако всякий раз, когда Webdriver не может найти элемент, он выдает исключение.

Мой вопрос: могу ли я проверить, существует ли элемент на странице, не засоряя мой код блоками begin / rescue?

Любая помощь с благодарностью.

1 Ответ

3 голосов
/ 02 марта 2012

Короткий ответ - нет. Чтобы проверить, существует ли элемент, вы должны спасти ошибки. find_element всегда выдает NoSuchElementError, если элемент не был найден. Например, вы можете взглянуть на реализацию метода #exists? в Watir-WebDriver.

Тем не менее, вы можете использовать метод find_elements, который будет возвращать пустой массив, если не было найдено элементов.

elements = @browser.find_elements(id: 'doesnt-exist')
if elements.empty?
  # go to the next element
else
  # work with element
  element = elements.first
  element.click
end
...