переход по ссылке приводит к пустой странице - PullRequest
0 голосов
/ 21 октября 2019

Я сделал скрипт на капибаре, который работает либо в режиме без головы, либо в режиме браузера. Он пытается создать страницу в вики. Для этого нажмите «Добавить» в строке меню, а затем «Страница» в раскрывающемся раскрывающемся списке.

Это работает в режиме браузера. Но в автономном режиме (webkit) после нажатия на ссылку «Страница» возвращается пустая страница. Кто может сказать мне, почему это может произойти?

В моем коде у меня есть это

   click_link 'Add'
    if ENV['BROWSER'] == 'headless'
        wait_for_ajax
        verbose( "headless add page", 3)
        p page.html
        lnk = all( :css, "#createPageLink").first
        p lnk
        wait_for_ajax
        lnk.click
      else
        verbose( "klik Page", 3)
        click_link 'Add a Page'
        lnk = all( :css, "#createPageLink").first
        p lnk
        lnk.click
    end
    wait_for_ajax
    p page.html

Этот вывод в режиме без головы

PAGEHTML</div></body></html>"
#<Capybara::Node::Element tag="a" path="/html/body[@id='com-atlassian-confluence']/div[@id='full-height-container']/div[@id='splitter']/div[@id='splitter-content']/div[@id='main']/div[@id='main-header']/div[@id='navigation']/ul/li[3]/div/ul[@id='add-menu-link-space']/li[1]/a[@id='createPageLink']">
""

Так что ссылка is found (p lnk показывает Capybara :: Node :: Element), но щелчок по ссылкам возвращает пустую страницу, в то время как при нажатии на ссылку в браузере я получаю html, который находится за ссылкой.

Надеюсь, вы скажете мне, что я пропускаю ...

Рууд

1 Ответ

0 голосов
/ 21 октября 2019

Capybara-webkit устарел и в основном эквивалентен 8-летнему браузеру. Скорее всего, он больше не поддерживает JS & CSS, используемые на странице, с которой вы взаимодействуете. Если вам нужна безголовая поддержка, вам будет гораздо лучше не использовать capybara-webkit и вместо этого использовать селен с хромом в безголовом режиме или один из прямых к Chrome через драйверы CDP (например, apparition ) длявзаимодействовать с любым сайтом, написанным / обновленным за последние несколько лет.

...