如何让Selenium-WebDriver等到其中一个元素显示出来

时间:2014-04-20 11:31:30

标签: ruby selenium-webdriver

我有一个页面随机显示(使用ajax)div#div1div#div2个元素之一。我怎么能等到其中一个元素显示在页面上?

   browser = Selenium::WebDriver.for :firefox
   browser_wait = Selenium::WebDriver::Wait.new(:timeout => 10)

   browser.get("http://www.myweb.com")

   element = browser_wait.until { 
   #       browser.find_element(:css => "div#div1") || 
   #       browser.find_element(:css => "div#div2") 
   }

我可以使用什么代替注释行?

1 个答案:

答案 0 :(得分:0)

你可以做一个"或"在CSS选择器中使用选择器之间的逗号。例如,以下CSS选择器将等待id为#34; div1"的div。或id为#34; div2":

的div
div#div1, div#div2

您可以在找到元素时使用此定位器:

element = browser_wait.until { 
  browser.find_element(:css, 'div#div1, div#div2')
}

element将找到任何div(如果两者都存在,则为页面上的第一个)。