【问题标题】:Trouble attaching to a javascript window with Watir无法使用 Watir 附加到 javascript 窗口
【发布时间】:2011-12-30 16:54:37
【问题描述】:

我是 Watir 的新手,正在为我的工作开发测试工具。
我遇到了一个似乎无法解决的问题,即使在检查了多个站点之后也是如此。

创建的 javascript 窗口如下:(创建的窗口在窗口中保存一个 pdf,因此唯一的“按钮”是最小化、最大化、关闭)

<a id="LogIn_HyperLink2" class="ms-WPTitle" onclick="javascript:var win = new Window({className: 'spread', title: 'Security Statement', top:0, left:1, width:750, height:365, url:'--redacted--/security.pdf', showEffectOptions: {duration:1.0}}); win.setConstraint(true, {left:10, right:20}); win.showCenter(); return false;" href="--redacted--/security.pdf" style="color:#6699cc; font-weight:bold;">Security Statement</a><br>

我都试过了

puts browser.modal_dialog(:title, "Security Statement").exists?
puts browser.javascript_dialog.exists?

两者都返回'false'

我应该采取什么方法来附加到这个新窗口,或者更直接:如何关闭这个新窗口?

您可以在link 看到页面(仅限 IE)

【问题讨论】:

    标签: watir watir-webdriver


    【解决方案1】:

    如果窗口包含 PDF 文件,则它是浏览器窗口,而不是模态 javascript 弹出窗口(警报、确认、提示)

    它被定义为在没有所有正常菜单等活动的情况下启动,但它仍然是一个浏览器窗口。您可以按照the Watir Wiki section about new browser windows 中的说明附加到它,使用 url 或标题,因为您知道这两者(鉴于您向我们展示的 HTML)。

    如果您使用的是 Watir-Webdriver,请使用它的窗口切换命令。现在,watirspec 是您对支持的方法及其工作方式的最佳参考。

    编辑 感谢您的链接。虽然上述情况适用于新的浏览器窗口,但这不是您所面临的。你所拥有的一切都在浏览器 HTML 中,使用 javascript 在 DOM 中动态创建。这都是标准的 HTML 元素,一旦你知道发生了什么,就可以轻松地进行交互(恕我直言,这实际上比弹出窗口或单独的窗口更容易处理)

    使用 IE 开发者工具,点击使“窗口”出现的链接后,点击开发工具工具栏中的图标,刷新开发工具中的 DOM 即可看到。

    最外层的容器似乎是一个 'dialog' 类的 div,此时它在 DOM 中是唯一的。

    窗口控件是那个下的三个 div,类 'spread_close'、'spread_minimize'、'spread_maximize'。有三个表格保存“窗口”的顶部、侧面和底部的图形元素,但那里的实际内容为零,它只是一个可视窗口框。

    还有一个 iframe 叠加在那个窗口上,我认为内容应该是这样的(我无法加载它,可能是因为我没有获得它的授权或其他原因)

    如果你只想关闭窗口,试试这个:

    browser.div(:class => 'spread_close').click
    

    由于存在大量客户端 JS 代码,因此您可能需要在单击链接后使用类似于“when_present”的方法,然后再开始与它进行交互。例如,如果您只想单击链接打开它,然后将其关闭,那么您会做这样的事情

    browser.link(:text => 'Security Statement').click
    browser.div(:class => 'spread_close').when_present.click
    

    【讨论】:

    • 我尝试使用Watir::IE.attach() 方法,同时使用标题和URL,并得到“无法定位窗口”异常。 link(仅限 IE)- 带有安全声明链接- 这是其中一个位置的示例。
    • 非常感谢!使用您提供的新信息发挥了魅力。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多