【问题标题】:Force browser to load using Ruby with Watir and Webdriver使用 Ruby 和 Watir 和 Webdriver 强制浏览器加载
【发布时间】:2018-05-04 04:21:58
【问题描述】:

当我运行以下代码时,我等待元素超时:

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 后超时 秒,等待#"new_user_username", :tag_name=>"input"}> 不被禁用 (Watir::Exception::ObjectDisabledException)

chrome 窗口启动,但似乎没有加载。我可以在它启动后通过调整窗口大小来强制它加载,一切正常,但我不应该采取任何手动步骤。是否有自动方式强制浏览器加载?

【问题讨论】:

  • 这很奇怪;我刚刚验证它对我有用。您可以使用Selenium::WebDrivers.logger.level = :info 运行它并将结果放入要点中吗?如果页面没有加载,它不应该找到该元素,然后抱怨它被禁用。我想看看它是如何实现这一点的。实际上也可以使用Watir.logger.level = :debug
  • 我添加了跟踪并让它运行一秒钟,然后再调整窗口大小。 gist.github.com/ryanesch/9b589035a1ac0abbd50794dad7219d21

标签: ruby webdriver watir watir-webdriver


【解决方案1】:

啊,这是一个可交互的错误。这些不能轻易提前弄清楚。由于某种原因,chromedriver 认为它不能将元素移动到可以输入文本的位置。

您可以尝试browser.window.maximize,或browser.window.move_to(x,y),也可以使用Alex 出色的watir-scroll.gem 将元素定位在chromedriver 可以使用的视口内。

【讨论】:

  • 谢谢! move 似乎没有用,但最大化确实有效。稍后我会尝试 watir-scroll.gem。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-23
  • 2016-11-16
  • 2015-06-09
  • 1970-01-01
  • 2012-11-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多