我正在尝试编写简单的测试.我的问题是,我想等到页面完全加载.目前我正在等待一些元素出现,但这不是我想要的.有可能做这样的事情:
driver = Selenium::WebDriver.for :chrome driver.navigate.to url driver.wait_for_page_to_load "30000"
用Java不是问题,但如何用ruby制作呢?
解决方法
这是
Selenium docs()建议的方式:
require 'rubygems' require 'selenium-webdriver' driver = Selenium::WebDriver.for :firefox driver.get "http://google.com" element = driver.find_element :name => "q" element.send_keys "Cheese!" element.submit puts "Page title is #{driver.title}" wait = Selenium::WebDriver::Wait.new(:timeout => 10) wait.until { driver.title.downcase.start_with? "cheese!" } puts "Page title is #{driver.title}" driver.quit
如果这不是一个选项,你可以尝试this SO post的建议,虽然它需要在Ruby / Rails之上的一些Javascript.
看来wait.until已经/已经被淘汰了.新的建议过程,它寻找页面有你知道的元素将在那里:
expect(page).to have_selector '#main_div_id'