使用 Ruby 和 Watir 和 Webdriver 强制浏览器加载
Force browser to load using Ruby with Watir and Webdriver
当我运行下面的代码时,我得到一个等待元素的超时:
require 'watir'
require 'webdrivers'
browser = Watir::Browser.new
browser.goto "http://watir.com/examples/forms_with_input_elements.html"
browser.text_field(:id, "new_user_username").set("test")
/home/.gem/ruby/2.4.1/gems/watir-6.9.1/lib/watir/elements/element.rb:618:in
`raise_disabled': element present and enabled, but timed out after 30
seconds, waiting for # < Watir::TextField: located: true;
{:id=>"new_user_username", :tag_name=>"input"}> to not be disabled
(Watir::Exception::ObjectDisabledException)
chrome window 启动但似乎没有加载。我可以在它启动后通过调整 window 的大小来强制加载它,并且一切正常,但我不必采取任何手动步骤。是否有自动强制浏览器加载的方法?
啊,这是一个交互错误。这些不容易提前弄清楚。出于某种原因,chromedriver 认为它不能将元素移动到可以输入文本的位置。
您可以尝试 browser.window.maximize
,或 browser.window.move_to(x,y)
,或者您可以使用 Alex 出色的 watir-scroll.gem 将元素定位在 chromedriver 可以使用的视口内。
当我运行下面的代码时,我得到一个等待元素的超时:
require 'watir'
require 'webdrivers'
browser = Watir::Browser.new
browser.goto "http://watir.com/examples/forms_with_input_elements.html"
browser.text_field(:id, "new_user_username").set("test")
/home/.gem/ruby/2.4.1/gems/watir-6.9.1/lib/watir/elements/element.rb:618:in `raise_disabled': element present and enabled, but timed out after 30 seconds, waiting for # < Watir::TextField: located: true; {:id=>"new_user_username", :tag_name=>"input"}> to not be disabled (Watir::Exception::ObjectDisabledException)
chrome window 启动但似乎没有加载。我可以在它启动后通过调整 window 的大小来强制加载它,并且一切正常,但我不必采取任何手动步骤。是否有自动强制浏览器加载的方法?
啊,这是一个交互错误。这些不容易提前弄清楚。出于某种原因,chromedriver 认为它不能将元素移动到可以输入文本的位置。
您可以尝试 browser.window.maximize
,或 browser.window.move_to(x,y)
,或者您可以使用 Alex 出色的 watir-scroll.gem 将元素定位在 chromedriver 可以使用的视口内。