Справочник Ruby Watir Chrome Print Preview - PullRequest
0 голосов
/ 13 мая 2018

Я пишу скрипт для циклического перебора некоторых ссылок и печати в 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, выводом является html нижележащего окна.

Если вы хотите посмотреть на ситуацию с html, просто нажмите Ctrl + P на этой странице (в chrome), чтобы понять, что я имею в виду.

1 Ответ

0 голосов
/ 13 мая 2018

Конечно, после публикации вопроса я вскоре нашел своего рода ответ; в основном, chrome открывает 2 окна браузера, и к окну предварительного просмотра нельзя получить доступ по заголовку (потому что у него был тот же заголовок, что и у основного), но доступ к нему можно получить по browser.window(:index => 1).use do. не уверен, почему browser.windows.last.use do не работает. Кроме того, после этого я бы подумал, что browser.window(:index => 2).use do будет правильным, поскольку индекс 0 будет первоначально открытым, индекс 1 - всплывающее окно и индекс 2 - предварительный просмотр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...