Ruby Watir 参考 Chrome 打印预览
Ruby Watir reference Chrome Print Preview
我正在编写一个脚本来循环访问一些链接并打印为 PDF。
当您单击其中一个链接时,将弹出一个新的 window 要打印的文档,并在新 window Chrome 的顶部弹出一个打印预览框。
我正在尝试更改打印机,然后单击打印按钮。
但是,我的代码发生了什么,watir 只查看 window 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" 而不是标题名称,但这也不起作用。
我知道它只能看到底层 window 的 html,因为当我输入 browser.html 时,输出是底层 windows html。
如果您想查看 html 情况,只需按 Ctrl+P 此页面(在 chrome 中)即可了解我的意思。
当然,发布问题后我很快就找到了答案;基本上 chrome 打开 2 个浏览器 windows 并且无法通过标题访问打印预览(因为它与底层浏览器具有相同的标题)但可以通过 browser.window(:index => 1).use do
访问。不确定为什么 browser.windows.last.use do
不起作用。此外,我认为 browser.window(:index => 2).use do
是正确的,因为索引 0 是最初打开的索引,索引 1 是弹出窗口,索引 2 是打印预览。
我正在编写一个脚本来循环访问一些链接并打印为 PDF。 当您单击其中一个链接时,将弹出一个新的 window 要打印的文档,并在新 window Chrome 的顶部弹出一个打印预览框。
我正在尝试更改打印机,然后单击打印按钮。
但是,我的代码发生了什么,watir 只查看 window 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" 而不是标题名称,但这也不起作用。
我知道它只能看到底层 window 的 html,因为当我输入 browser.html 时,输出是底层 windows html。
如果您想查看 html 情况,只需按 Ctrl+P 此页面(在 chrome 中)即可了解我的意思。
当然,发布问题后我很快就找到了答案;基本上 chrome 打开 2 个浏览器 windows 并且无法通过标题访问打印预览(因为它与底层浏览器具有相同的标题)但可以通过 browser.window(:index => 1).use do
访问。不确定为什么 browser.windows.last.use do
不起作用。此外,我认为 browser.window(:index => 2).use do
是正确的,因为索引 0 是最初打开的索引,索引 1 是弹出窗口,索引 2 是打印预览。