Testing Selenium IDE测试所有链接

Testing Selenium IDE测试所有链接,testing,selenium,modal-dialog,selenium-ide,Testing,Selenium,Modal Dialog,Selenium Ide,我正在尝试使用Selenium IDE测试web应用程序。在一个页面上,有几个链接触发模式窗口。我想测试页面上的所有链接,以确保所有导致模态弹出 每个链接都有一个类“modal”,所以我想我可以在IDEcss=a.modal中更改目标值,但这只能找到第一个链接 我已经找到了一些解决方案,但是它们使用Selenium RC和Java/Python,并且不能直接转换到IDE 我知道IDE没有那么强大,但我为非程序员设置了它,到目前为止,它对他们来说非常简单。使用while循环,这个XPath表达式作

我正在尝试使用Selenium IDE测试web应用程序。在一个页面上,有几个链接触发模式窗口。我想测试页面上的所有链接,以确保所有导致模态弹出

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

我已经找到了一些解决方案,但是它们使用Selenium RC和Java/Python,并且不能直接转换到IDE


我知道IDE没有那么强大,但我为非程序员设置了它,到目前为止,它对他们来说非常简单。

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

//a[contains(@class,'modal')][1]
//a[contains(@class,'modal')][2]
等应该指向您要查找的链接

如果您不熟悉Selenium IDE,请参阅以获取有关如何在其中执行while循环的更多信息。

尝试此方法(您必须下载此方法):


商店购物
css=a.modal
链接
商店
0
我
标签
l1
格特瓦尔
storedVars.i++
点击
//后代::a[包含(@class,'modal')][${i}]
戈托夫
--storedVars.links
l1

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

我必须仔细阅读,我要感谢@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>

打开
/注销
单击并等待
链接=论坛
storeXpathCount
//p[3]/span/a[contains(@class,'modal')]
使用者
商店
1.
我
虽然
storedVars.i=storedVars.users
点击
//后代::a[包含(@class,'modal')][${i}]
waitForText
css=h2
您没有登录
点击
css=#交叉按钮a img
商店
javascript{storedVars.i++}
结束时

我不会选择任何一个答案,因为它们都是最终解决方案的组成部分

谢谢你。但是,该链接没有显示如何使用xpath获取链接列表。任何更具体的都将不胜感激!您可以“假装”
//a[contains(@class,'modal')]
是链接列表(它实际上只是一个定位器/选择器),
//a[contains(@class,'modal')][1]
是第一个链接,
//a[contains(@class,'modal')][2]
是第二个链接,等等。很高兴您解决了您的问题。但是在可能的情况下,尝试使用ID、链接、名称和css来代替xpath。我的意思是StoreCsCount比storeXpathCount更可取。另外,如果所有链接都有一个公共父链接,则可以使用
click | css=a.modal:n子链接(${i})
storecscount比storeXpathCount更可取
为什么?
<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>