在Selenium IDE中完全加载延迟到下一页

时间:2013-10-23 11:19:54

标签: user-interface selenium web selenium-ide web-testing

我正在尝试使用selenium IDE自动化测试用例。我在firefox上安装了这个附加组件。我正在尝试使用其中一个网站中的管理员/管理员凭据登录,之后需要几秒钟才能完全加载下一页。

<tr>
    <td>type</td>
    <td>id=username</td>
    <td>admin</td>
</tr>
<tr>
    <td>type</td>
    <td>id=password</td>
    <td>admin</td>
</tr>
<tr>
    <td>click</td>
    <td>css=button.btn</td>
    <td></td>
</tr>
<tr>
    <td>waitForPageToLoad</td>
    <td>30000</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>css=span.ncs-tree-nav</td>
    <td></td>
</tr>

waitForPageToLoad无法正常工作,理想情况下应该等待30秒,但只要点击登录按钮,测试用例就会抛出错误,因为它无法在页面上找到下一个元素。

以下是IDE的输出: -

[info] Executing: |open | /login.html | |
[info] Executing: |type | id=username | admin |
[info] Executing: |type | id=password | admin |
[info] Executing: |click | css=button.btn | |
[info] Executing: |waitForPageToLoad | 30000 | |
[info] Executing: |click | css=span.ncs-tree-nav | |
[error] Element css=span.ncs-tree-nav not found 

登录完成后,它会移动以搜索预期的导航并出现错误。 如果有人能指出我是否遗漏了某些内容,将会很有帮助。

2 个答案:

答案 0 :(得分:2)

务实的方法,

如果您有一些视觉条件在页面加载时变为现实,您可以查找它。 假设文本“欢迎用户”在页面加载时显示在id = content的某个范围内,您可以用

替换waitForPageToLoad
<tr>
  <td>waitForText</td>
  <td>id=content</td>
  <td>Welcome*</td>
</tr>

可能你甚至可以像

一样生硬
<tr>
  <td>waitForText</td>
  <td>//body</td>
  <td>*Welcome*</td>
</tr>

虽然我自己没有测试过后者。

答案 1 :(得分:1)

如果您的页面在点击后重新加载,则必须使用 clickAndWait 而不是点击

<tr>
    <td>clickAndWait</td>
    <td>css=button.btn</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>css=span.ncs-tree-nav</td>
    <td></td>
</tr>

如果页面没有重新加载,则高级代码将无效。在这种情况下,等待您将在下一步使用的元素存在:

<tr>
    <td>click</td>
    <td>css=button.btn</td>
    <td></td>
</tr>
<tr>
    <td>waitForElementPresent</td>
    <td>css=span.ncs-tree-nav</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>css=span.ncs-tree-nav</td>
    <td></td>
</tr>
相关问题