我正在用 Selenium-Webdriver 在 Ruby 中编写一个脚本,并且一直在尝试提出一个循环来刷新当前页面,直到出现某个元素 id。我当前的代码如下所示:
until driver.find_element(:id => "test").displayed?
puts "#{driver.title} not live - reloading..."
driver.navigate.refresh
end
但是,当执行时,这会使整个脚本停止而不刷新页面(但不会引发任何错误)。我尝试用driver.navigate.refresh
with代替driver.get "http://website"
,但我得到了相同的结果。
为了诊断问题,我尝试查看我的第一行返回的内容。当找到 id 为“test”的元素时, aputs driver.find_element(:id => "test").displayed?
将向控制台返回“true”。如果未找到元素“test”,则控制台挂起而不返回任何内容。我猜我需要实现某种计时器来强制脚本放弃搜索元素,但我希望它会动态地解决这个问题(取决于解释页面需要多长时间)。
任何有关使此循环正常工作的帮助将不胜感激。