使用Ruby,我们可以通过以下方式等待特定元素:
wait = Selenium::WebDriver::Wait.new(:timeout => 10)
wait.until { driver.find_element(:class, 'gritter-item') }
但如果我想让特定元素从DOM中消失,我会写出类似的方法:
def disappear_element
begin
driver.find_element(:class, 'gritter-item')
rescue Selenium::WebDriver::Error::NoSuchElementError
true
else
false
end
end
并称之为:
wait.until { disappear_element }
这样我就可以实现元素的缺失。 Ruby中有没有更好的方法来实现同样的目标?
答案 0 :(得分:4)
您可以按照以下方式编写disappear_element
(使用find_elements
代替find_element
):
def disappear_element
driver.find_elements(:class, 'gritter-item').size == 0
end