【问题标题】:clicking link results in empty page单击链接会导致空白页面
【发布时间】:2020-02-17 14:08:46
【问题描述】:

我制作了一个在无头模式或浏览器模式下运行的水豚脚本。它尝试在 wiki 中创建一个页面。它通过单击菜单栏中的“添加”,然后在打开的下拉菜单中单击“页面”来实现。

这适用于浏览器模式。但是在无头模式(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']">
""

所以找到了链接(p lnk显示Capybara::Node::Element),但是点击链接返回一个空白页面,而当浏览器点击链接时,我获取链接后面的 html。

希望你能告诉我我忽略了什么......

路德

【问题讨论】:

    标签: capybara capybara-webkit


    【解决方案1】:

    Capybara-webkit 已经过时,基本上相当于一个 8 年前的浏览器。很可能它不再支持您正在与之交互的页面上使用的 JS 和 CSS。如果您需要无头支持,最好不要使用capybara-webkit,而是在无头模式下使用带有 chrome 的 selenium,或者通过 CDP 驱动程序(如apparition)直接连接到 Chrome 以与任何站点交互在过去几年中编写/更新。

    【讨论】:

    • 感谢 Thomas,感谢您的建议,我得到了它的工作!
    猜你喜欢
    • 1970-01-01
    • 2022-10-15
    • 2012-03-11
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多