当我运行以下代码时,我等待元素超时:
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':元素存在并启用,但在30之后超时 秒,等待#< Watir :: TextField:位于:true; {:id =>“new_user_username”,:tag_name =>“input”}>不被禁用 (的Watir ::异常:: ObjectDisabledException)
Chrome窗口启动,似乎没有加载。我可以通过在窗口启动后调整窗口大小来加载它,一切正常,但我不应该采取任何手动步骤。是否有强制浏览器加载的自动方式?
答案 0 :(得分:3)
啊,这是一个可互动的错误。那些不容易被提前弄清楚。出于某种原因,chromedriver并不认为它可以将元素移动到可以输入文本的位置。
您可以尝试使用browser.window.maximize
或browser.window.move_to(x,y)
,也可以使用Alex的优秀watir-scroll.gem将元素放置在chromedriver可以使用的视口内。