我正在编写一个脚本来循环浏览一些链接并打印到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,因为当我放置浏览器时.html输出是底层窗口 html。
如果你想看看html的情况,只需Ctrl + P这个页面(在铬中(看看我的意思。
当然,在发布问题后,我很快就找到了某种答案; 基本上 chrome 打开 2 个浏览器窗口,打印预览一个无法按标题访问(因为它与底层标题相同(,但可以通过browser.window(:index => 1).use do
访问。 不知道为什么browser.windows.last.use do
不起作用。同样在此之后,我会认为browser.window(:index => 2).use do
是正确的,因为索引 0 将是最初打开的索引,索引 1 是弹出窗口,索引 2 是打印预览。