5

使用 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 中有没有更好的方法来实现同样的目标?

4

1 回答 1

5

您可以编写disappear_element如下(使用find_elements代替find_element):

def disappear_element
  driver.find_elements(:class, 'gritter-item').size == 0
end
于 2013-10-15T07:15:28.327 回答