【问题标题】:How to handle new browser pop up after clicking a js button in Watir?单击Watir中的js按钮后如何处理新的浏览器弹出?
【发布时间】:2011-12-09 11:15:16
【问题描述】:

我正在尝试在 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:New browser title) (Watir::Exception::NoMatchingWindowFoundException) 的窗口

    from C:/Ruby187/lib/ruby/gems/1.8/gems/watir-1.8.1/lib/watir/ie-class.rb

:150:in `_attach_init'

    from C:/Ruby187/lib/ruby/gems/1.8/gems/watir-1.8.1/lib/watir/ie-class.rb

:144:在“附加”中 来自 test1.rb:36

【问题讨论】:

  • 1) 向我们展示您尝试附加的 Watir 代码。编辑上面的帖子以添加代码,我想我知道你做错了什么,但直到我看到代码才能确定。 2) 你试过用 f12 打开开发工具栏吗?

标签: ruby browser watir


【解决方案1】:

附加方法能够处理新窗口。 http://rdoc.info/gems/watir/1.8.1/Watir/IE.attach

例如

浏览器 = Watir::Browser.new browser.text_field(:id,'username').set 'username') browser.button(:index,1).click # 弹出新窗口 popup = Watir::Browser.attach(:title,'Foobar')

如果您只使用弹出窗口,您可以覆盖浏览器变量。

【讨论】:

  • 它不起作用.......我试过这样:ie2 = Watir::Browser.attach(:title, /New browser title/) ie2.close 新浏览器没有'不关闭,我认为它不起作用。我也试过 Watir::IE,同样的结果
  • 如果您确切知道浏览器标题,则没有理由使用正则表达式来匹配它,只需将标题放在引号中即可。
  • 嗯.. 看起来您无法按标题检测窗口。如果您知道要附加的 URL,请尝试 :url 属性。 popup = Watir::Browser.attach(:url,/url/)
【解决方案2】:

您可以尝试像这样进行身份验证:

examplehost.com/authentication?user=foo&password=bar

您还可以尝试删除该身份验证表单的“目标”属性(可能等于“_blank”)(我很确定您应该能够通过 watir 实现这一目标)

编辑:

另外,还有这个选项:

ie2 = Watir::IE.attach(:title, ‘New Ie window, opened upon form submit’)

它也可以通过 :url 而不是 :title 附加

【讨论】:

  • 你能解释一下如何“删除目标属性”吗?如果我删除目标属性,它会在同一个窗口中打开?
  • 免责声明:该按钮实际上是一个节点,带有一个onClick事件。
【解决方案3】:

好的,这个解决方案可能可行:

b = Watir::Browser.start "http://yourpage"

b.execute_script("document.getElementById('your-image-id').onClick = function() {}")

所以,我们的想法是获取该图像并覆盖它的 onclick 事件

【讨论】:

    猜你喜欢
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 2013-03-19
    • 1970-01-01
    • 2013-01-10
    • 2023-02-23
    • 1970-01-01
    相关资源
    最近更新 更多