2

我正在尝试使用 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 

一旦登录完成,它就会移动以搜索预期的导航并且错误来了。如果有人能指出我是否遗漏了什么,那将会很有帮助。

4

2 回答 2

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>

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

于 2013-10-23T12:11:14.420 回答
1

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

<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>
于 2013-10-24T14:17:47.067 回答