我正在编写一个脚本来循环浏览一些链接并打印到PDF。 当您单击其中一个链接时,会弹出要打印的文档的新窗口,并在该新窗口的顶部弹出Chrome的打印预览框。
我正在尝试更换打印机,然后单击打印按钮。
我的代码发生的事情是,watir只查看窗口html而不是打印预览html,因此无法找到元素。
我的代码如下所示:
begin
browser.window(title: 'Window Title Name').use do
browser.div(:id => "navbar-scroll-container").button(:class => "destination-settings-change-button").click
sleep(1)
browser.element(:title => "CutePDF Writer").click
browser.button(:visible_text => 'Print').click
end
rescue Watir::Exception::NoMatchingWindowFoundException
retry
end
我尝试过使用“browser.windows.last.use do”而不是标题名称,但这也不起作用。
我知道它只能看到底层窗口的html,因为当我把browser.html输出的是底层的windows html时。
如果你想查看html情况,只需按Ctrl + P这个页面(在chrome中)看看我的意思。
答案 0 :(得分:0)
当然,在发布问题后,我很快就找到了答案;基本上chrome打开2个浏览器窗口,打印预览无法通过标题访问(因为它与底层标题具有相同的标题),但可以由browser.window(:index => 1).use do
访问。不确定为什么browser.windows.last.use do
不起作用。此外,我认为browser.window(:index => 2).use do
将是正确的,因为索引0将是最初打开的索引,弹出索引1和打印预览索引2。