使用 Cucumber 1.0.1 和 Watir 1.9.2 ,我需要执行javascript代码,以便专有门户网站执行某些操作导航
我可以使用以下代码执行JS代码:
def execute_js(js_code)
@browser.goto("javascript:#{js_code};void(0)")
end
execute_js("doNavigate()")
通过这样做,导航按预期完成,但Watir不会重新控制浏览器。
我在'javascript goto'之后寻找Watir重新控制浏览器的解决方案。
@browser.execute_script('alert("toto");')
给了我这个:
execScript
OLE error code:80070005 in <Unknown>
Access Denied.
HRESULT error code:0x80020009
An exception occurred. (WIN32OLERuntimeError)
./features/lib/portal.rb:110:in `tln_main_tab'
答案 0 :(得分:1)
我找到了解决方法:
def execute_js(js_code)
begin
Timeout::timeout(2) do
@browser.goto("javascript:#{js_code};void(0)")
end
rescue Exception => e
goto "#{@browser.url}#" # <<< workaround is here
return
end
end
execute_js("doNavigate()")
这不是理想的,但它可以启用javascript执行,然后更新URL哈希,以便Watir 知道实际操作已完成,以便Watir可以更进一步。
答案 1 :(得分:0)
Access Denied
错误消息通常连接到页面上的帧。请查看Watir wiki的Frames页面。