即使元素在页面上,也不会出现'geb.navigator.EmptyNavigator'

时间:2016-12-02 13:58:23

标签: selenium-webdriver spock geb

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

at ReportsPage

页面对象包含:

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

此检查在一台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>

1 个答案:

答案 0 :(得分:1)

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