我正在尝试在ruby中使用watir,我可以打开浏览器, 输入一些值到用户名/密码表单,但然后我按回车键,然后我点击提交按钮(实际上是按下一个输入,它是缓和的代码),它会为我们的应用程序弹出一个新的浏览器窗口,然后我发现我无法控制新的浏览器。我该怎么办?
除了我的问题,新的浏览器窗口没有菜单栏,没有工具栏,没有导航栏,因此我无法打开IE开发人员工具栏,在新浏览器的网页中找到该元素的名称。
顺便说一下,我的应用只能支持IE。
我尝试了附加方法,但确实有效:
C:/Ruby187/lib/ruby/gems/1.8/gems/watir-1.8.1/lib/watir/ie-class.rb:302:
`attach_browser_window'中的:无法找到标题为(?-mix:新浏览器标题)的窗口(Watir :: Exception :: NoMatchingWindowFoundException)
from C:/Ruby187/lib/ruby/gems/1.8/gems/watir-1.8.1/lib/watir/ie-class.rb
:150:在`_attach_init'
from C:/Ruby187/lib/ruby/gems/1.8/gems/watir-1.8.1/lib/watir/ie-class.rb
:144:在'attach'中 来自test1.rb:36
答案 0 :(得分:1)
Attach方法能够处理新窗口。 http://rdoc.info/gems/watir/1.8.1/Watir/IE.attach
例如
browser = Watir::Browser.new browser.text_field(:id,'username').set 'username') browser.button(:index,1).click # popped up the new window popup = Watir::Browser.attach(:title,'Foobar')
如果您只使用弹出窗口,则可以改写浏览器变量。
答案 1 :(得分:0)
您可以尝试进行身份验证:
examplehost.com/authentication?user=foo&password=bar
您还可以尝试删除该身份验证表单的“目标”属性(可能等于“_blank”)(我非常确定您应该能够通过watir实现此目标)
编辑:
此外,还有这个选项:
ie2 = Watir::IE.attach(:title, ‘New Ie window, opened upon form submit’)
它也可以附加:url而不是:title
答案 2 :(得分:0)
好的,这个解决方案可能有用:
b = Watir::Browser.start "http://yourpage"
b.execute_script("document.getElementById('your-image-id').onClick = function() {}")
所以,想法是获取该图像并覆盖它的onclick事件