【问题标题】:Getting 'geb.navigator.EmptyNavigator is not present' even when element is on the page即使元素在页面上,也获取“geb.navigator.EmptyNavigator 不存在”
【发布时间】:2016-12-02 13:58:22
【问题描述】:

在基于 Geb 的测试中,我使用非常简单的检查:

at ReportsPage

页面对象包含在哪里:

static at = {
    $("#navContent .current").text() == "Reports"
}

此检查在一台 PC 上运行良好,但在另一台 PC 上因 'geb.navigator.EmptyNavigator 不存在'而失败。两者都在测试相同的外部网站,因此接收相同的 HTML 代码。也使用相同版本的 Geb、Webdriver 和 Firefox 浏览器。因为我使用 GebReportingSpec 它存储页面失败。我在文本编辑器中检查了它,可以看到所需的元素:

<div id="navContent">
    <ul>
        <li class="current">
            <a href="reports" title="Reports">Reports</a>
        </li>
        ...
    </ul>
</div>

【问题讨论】:

    标签: selenium-webdriver spock geb


    【解决方案1】:

    Firefox 驱动程序有一个特殊性,它有时在从WebDriver.get(String) 调用返回之前不会等待页面加载。这就是 Geb 介绍atCheckWaiting config option 的原因。我建议将其设置为较低的值(我通常使用 1 秒),您的问题应该会消失。

    【讨论】:

    • 感谢您的回答。这真的很奇怪,但是在重新启动运行测试的服务器后我无法重现失败的场景。如果以后问题再次出现,将尝试您的解决方案。
    • 似乎这个问题仍然随机出现,所以避免它的唯一方法可能是使用你建议的配置选项。谢谢!
    猜你喜欢
    • 2018-01-10
    • 1970-01-01
    • 2019-03-28
    • 2018-08-20
    • 1970-01-01
    • 2015-10-19
    • 2021-03-01
    • 2018-12-04
    • 2016-06-14
    相关资源
    最近更新 更多