我正在使用send_keys,我必须按回车
键@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:输入,永远不会看到"accountSwitcherSelect_menu">并投掷
60 秒后超时
错误
watir 6.10.3, Ruby 2.2.5, Windows OS, 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: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:in
send_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:in
send_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:in
块 来自 删除触发器8.rb:106:ineach' from DeleteTriggers8.rb:106:in
'
谢谢@Rajagopalan浏览器窗口焦点问题似乎是现已弃用的 watir-classic 的限制。切换到最新的 watir-webdriver 可以解决这个问题。