【发布时间】:2018-05-09 02:51:54
【问题描述】:
我正在使用 send_keys 我必须按 Enter
@ie.element(:css, "#accountSwitcherSelect.dijitDownArrowButton").send_keys :enter
这使得切换帐户的另一个对象可见
@ie.div(:id => "accountSwitcherSelect_dropdown").table(:id => "accountSwitcherSelect_menu")
这是最重要的,如果我在那里,它可以完美运行,并且浏览器在前台处于焦点。
但是,如果我要么 a) 锁定 Windows 操作系统屏幕,或 b) 正在远程桌面上工作并退出 RDP,或者 c) 在无人看管的机器上从计划任务开始运行 ruby 脚本 它会看到第一个下拉列表就好了
puts @ie.element(:css, "#accountSwitcherSelect.dijitDownArrowButton").visible?
但它永远不会 send_keys :enter 并且永远不会看到 "accountSwitcherSelect_menu" 并抛出
60 秒后超时
错误
watir 6.10.3、ruby 2.2.5、Windows 操作系统、IE 11
--这是完整的错误信息,第 125 行是
@ie.element(:css, "#accountSwitcherSelect.dijitDownArrowButton").send_keys :enter
C:/ruby225/lib/ruby/gems/2.2.0/gems/rautomation-0.17.0/lib/rautomation/wait_helper.rb:20:in
wait_until': timed out after 60 seconds (RAutomation::WaitHelper::TimeoutError) from C:/ruby225/lib/ruby/gems/2.2.0/gems/rautomation-0.17.0/lib/rautomation/adapter/win_32/window.rb:153:inblock in send_keys' 来自 C:/ruby225/lib/ruby/gems/2.2.0/gems/rautomation-0.17.0/lib/rautomation/adapter/win_32/window.rb:152:ineach' from C:/ruby225/lib/ruby/gems/2.2.0/gems/rautomation-0.17.0/lib/rautomation/adapter/win_32/window.rb:152:insend_keys' 来自 C:/ruby225/lib/ruby/gems/2.2.0/gems/rautomation-0.17.0/lib/rautomation/window.rb:192:insend_keys' from C:/ruby225/lib/ruby/gems/2.2.0/gems/watir-classic-4.3.0/lib/watir-classic/browser.rb:452:insend_keys ' 来自 C:/ruby225/lib/ruby/gems/2.2.0/gems/watir-classic-4.3.0/lib/watir-classic/element.rb:124:insend_keys ' from DeleteTriggers8.rb:125:inblock in ' 来自 DeleteTriggers8.rb:106:ineach' from DeleteTriggers8.rb:106:in'
【问题讨论】:
-
请粘贴整个错误信息
-
"timed out after 60 seconds" 是我在开始救援时收到的全部错误消息 Exception => e puts "\nException 从 #{Time.now} 开始捕获:#{e}"
-
不删除救援块并运行程序并获取整个消息并在问题中更新它..
-
您使用的是 WATIR(由 Selenium 提供支持)还是 WATIR -classic?因为
rautomation-0.17.0/在已被弃用的watir-classic 中。 -
谢谢@Rajagopalan,浏览器窗口焦点问题似乎是现已弃用的 watir-classic 的限制。切换到更高版本的 watir-webdriver 即可解决问题。
标签: ruby windows focus watir sendkeys