Подождите, пока конкретный элемент не исчезнет



Используя 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 добиться того же?
551   1  

1 ответ:

Вы можете написать disappear_element следующим образом (используя find_elements вместо find_element):

def disappear_element
  driver.find_elements(:class, 'gritter-item').size == 0
end

Comments

    Ничего не найдено.