我使用selenium IDE 1.9.0来记录测试。 请告诉我我没有错,以及如何解决问题。
以下是我记录测试的步骤。 1.我使用用户名和密码登录了该站点 2.导航到搜索会员页面以输入会员姓名,点击系统引导我到会员资料页面的名称链接。
脚本停在此行:
ClickAndWait id=cmp_admin
我第一次玩脚本时没有任何错误。 8小时后运行脚本,它会提示我以下错误:
[error] Element id=cmp_admin not found
我使用调试功能来查看出错的地方。以下是调试窗格中显示的消息:
[debug] modifySeparateTestWindowToDetectPageLoads: already polling this window: selenium1365079281311
[debug] getCurrentWindow newPageLoaded = false
[error] Element id=cmp_admin not found
[debug] commandError
[debug] testComplete: failed=true
这是Selenium IDE生成的html代码
<tr>
<td>open</td>
<td>/</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=nd_home</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=cmp_admin</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=quicksearch_anchor</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=img[alt="Member"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=search_name</td>
<td>suzy</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Balagia, Suzy</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>
答案 0 :(得分:3)
如果在点击一些时间点击加载页面后点击任何按钮或链接,如果页面未完全加载,则selenium ide找不到ID或下一个元素的名称。要使用Pause , waitfortext, clickandwait
命令
我在代码中进行了一些更改,请运行并让我知道它对您有用。
<tr>
<td>open</td>
<td>/</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=nd_home</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>1500</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=cmp_admin</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>id=quicksearch_anchor</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>css=img[alt="Member"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=search_name</td>
<td>suzy</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Balagia, Suzy</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>
答案 1 :(得分:1)
这可能是一些事情。首先,是您在页面上寻找的元素(id = cmp_admin),仍称为cmp_admin?从您的代码中,您似乎必须单击id = nd_home,然后加载包含cmp_admin的页面。如果是这种情况,很可能页面还没有完成加载,所以元素还没有。尝试在点击nd_home之间使用waitfor命令,如下所示:
点击| id = nd_home |
waitForElementPresent | id = cmp_admin |
clickAndWait | id = cmp_admim |
您也可以尝试暂停,等待几秒钟,但我发现waitfor命令不那么脆弱,特别是如果您有大量的Ajax请求或必须加载的元素。
Klendathu