我有这个硒测试(它的一部分)。
<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>clickAndWait</td>
之后的步骤<td>goBack</td>
会出现错误。日志说,
元素xpath =(// a [包含(text(),&#39;显示&#39;)])[5]未找到。
我的问题是,在我执行其他操作之前,如何返回并等待页面加载。
答案 0 :(得分:1)
你必须使用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>
答案 1 :(得分:0)
谢谢(@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.
这是我的解决方案,我在waitForPageToLoad
后使用goBack
。
<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>
答案 2 :(得分:0)
我看到了这个命令的goBackAndWait()变体。这可能对你有用。
通常我会建议使用waitFor来确保页面回到你想要的位置。如果可能的话,最简单的可能是waitForTitle。 waitForElementPresent&amp; waitForText也很好看。