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 也不错。
我有这个 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 也不错。