我正在使用Webdriver的Ruby解释。现在我正在查看的网页可能包含也可能不包含某个元素。如果不是,我想寻找另一个元素。但是,每当Webdriver找不到元素时,它都会抛出异常。
我的问题是,我是否可以检查元素是否甚至存在于页面上而不会使用开始/救援块乱丢我的代码?
非常感谢任何帮助。
答案 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