Webdriver在“find_element”上踢了一桶

时间:2012-03-02 03:49:14

标签: element webdriver

我正在使用Webdriver的Ruby解释。现在我正在查看的网页可能包含也可能不包含某个元素。如果不是,我想寻找另一个元素。但是,每当Webdriver找不到元素时,它都会抛出异常。

我的问题是,我是否可以检查元素是否甚至存在于页面上而不会使用开始/救援块乱丢我的代码?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

简短的回答是否定的。要检查元素是否存在,您必须挽救错误。如果找不到元素,find_element总是抛出NoSuchElementError。例如,您可以在Watir-WebDriver中查看implementation #exists?方法。

但是,如果没有找到元素,你可以使用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