Ruby Watir参考Chrome打印预览

时间:2018-05-13 01:54:25

标签: ruby google-chrome printing watir print-preview

我正在编写一个脚本来循环浏览一些链接并打印到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中)看看我的意思。

1 个答案:

答案 0 :(得分:0)

当然,在发布问题后,我很快就找到了答案;基本上chrome打开2个浏览器窗口,打印预览无法通过标题访问(因为它与底层标题具有相同的标题),但可以由browser.window(:index => 1).use do访问。不确定为什么browser.windows.last.use do不起作用。此外,我认为browser.window(:index => 2).use do将是正确的,因为索引0将是最初打开的索引,弹出索引1和打印预览索引2。