Selenium 返回并等待

Selenium goBack and wait

我有这个 selenium 测试(其中的一部分)。

<tbody>
<tr>
    <td>open</td>
    <td></td>
    <td>localhost:8091</td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>link=Rest objects</td>
    <td></td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>xpath=(//a[contains(text(),'Show')])[3]</td>
    <td></td>
</tr>
<tr>
    <td>assertText</td>
    <td>xpath=(//div[not(div)][1])</td>
    <td>ID: 2</td>
</tr>
<tr>
    <td>goBack</td>
    <td></td>
    <td></td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>xpath=(//a[contains(text(),'Show')])[5]</td>
    <td></td>
</tr>
<tr>
    <td>goBack</td>
    <td></td>
    <td></td>
</tr>
</tbody>.

我在 Firefox 中使用 Selenium IDE。当我 运行 它缓慢(切换速度)时,它运行良好。但是,当我尝试 运行 它更快时,我在 <td>goBack</td> 之后的 <td>clickAndWait</td> 步出现错误。日志说,

元素 xpath=(//a[contains(text(),'Show')])[5] 未找到.

我的问题,如何返回并等待页面加载后再执行其他操作。

你必须使用waitForPageToLoad命令adter点击元素直到页面加载,然后执行其他操作

使用下面的代码

<tr>
    <td>click</td>
    <td>xpath=(//a[contains(text(),'Show')])[5]</td>
    <td></td>
</tr>
<tr>
    <td>waitForPageToLoad</td>
    <td>10000</td>
    <td></td>
</tr>

谢谢(@Trimantra 软件解决方案)。

waitForPageToLoad 这就是我需要的。 来自文档:

waitForPageToLoad(timeout)
    Arguments:

        timeout - a timeout in milliseconds, after which this command will return with an error

    Waits for a new page to load.

这是我的解决方案,我在goBack之后使用了waitForPageToLoad

<tbody>
<tr>
    <td>open</td>
    <td></td>
    <td>localhost:8091</td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>link=Rest objects</td>
    <td></td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>xpath=(//a[contains(text(),'Show')])[3]</td>
    <td></td>
</tr>
<tr>
    <td>assertText</td>
    <td>xpath=(//div[not(div)][1])</td>
    <td>ID: 2</td>
</tr>
<tr>
    <td>goBack</td>
    <td></td>
    <td></td>
</tr>
<tr>
    <td>waitForPageToLoad</td>
    <td>800</td>
    <td></td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>xpath=(//a[contains(text(),'Show')])[5]</td>
    <td></td>
</tr>
<tr>
    <td>goBack</td>
    <td></td>
    <td></td>
</tr>
</tbody>

我看到此命令的 goBackAndWait() 变体。这可能对你有用。

通常我会建议使用 waitFor 来确保页面返回到您想要的位置。如果可能的话,最简单的方法是 waitForTitle。 waitForElementPresent 和 waitForText 也不错。