Selenium IDE测试所有链接

时间:2012-04-13 08:03:12

标签: testing selenium modal-dialog selenium-ide

我正在尝试使用Selenium IDE来测试网络应用。在一个页面上,有几个链接触发模态窗口。我想测试页面上的所有链接,以确保弹出所有原因模式。

每个链接都有一个“模态”类,所以我想我可以在IDE css=a.modal中更改目标值,但只找到第一个链接。

我找到了一些解决方案,但他们使用Selenium RC和Java / Python,但这些解决方案无法直接转换为IDE。

我知道IDE并不是那么强大,但是我正在为非程序员设置它,直到现在,它对他们来说非常简单。

3 个答案:

答案 0 :(得分:5)

我必须阅读很多内容,我要感谢@ohaal和@aleh的投入。我使用他们建议的链接以及一些更多的外部阅读来达到解决方案,如下:

<tr>
<td>open</td>
<td>/logout</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Forum</td>
<td></td>
</tr>
<tr>
<td>storeXpathCount</td>
<td>//p[3]/span/a[contains(@class, 'modal')]</td>
<td>users</td>
</tr>
<tr>
<td>store</td>
<td>1</td>
<td>i</td>
</tr>
<tr>
<td>while</td>
<td>storedVars.i&lt;=storedVars.users</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//descendant::a[contains(@class, 'modal')][${i}]</td>
<td></td>
</tr>
<tr>
<td>waitForText</td>
<td>css=h2</td>
<td>You are not logged in</td>
</tr>
<tr>
<td>click</td>
<td>css=#cross_button &gt; a &gt; img</td>
<td></td>
</tr>
<tr>
<td>store</td>
<td>javascript{storedVars.i++}</td>
<td></td>
</tr>
<tr>
<td>endWhile</td>
<td></td>
<td></td>
</tr>

我没有选择任何一个答案,因为他们都为最终解决方案做出了贡献。

答案 1 :(得分:1)

使用while循环,并将此XPath表达式用作定位器://a[contains(@class, 'modal')]

//a[contains(@class, 'modal')][1]//a[contains(@class, 'modal')][2]等应指向您所关注的链接。

如果您不熟悉Selenium IDE中有关如何进行while循环的更多信息,请参阅this link

答案 2 :(得分:1)

试试这个(你必须下载这个extension):

<tr>
    <td>storeCssCount</td>
    <td>css=a.modal</td>
    <td>links</td>
</tr>
<tr>
    <td>store</td>
    <td>0</td>
    <td>i</td>
</tr>
<tr>
    <td>label</td>
    <td>l1</td>
    <td></td>
</tr>
<tr>
    <td>getEval</td>
    <td>storedVars.i++</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>//descendant::a[contains(@class, 'modal')][${i}]</td>
    <td></td>
</tr>
<tr>
    <td>gotoIf</td>
    <td>--storedVars.links</td>
    <td>l1</td>
</tr>

在最后一个命令(gotoIf)之前插入你的断言和可能的弹出窗口关闭。