单击Watir中的js按钮后如何处理弹出的新浏览器?

时间:2011-04-12 03:28:30

标签: ruby browser watir

我正在尝试在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

3 个答案:

答案 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事件