检查Selenium中的复选框

时间:2013-11-28 22:33:04

标签: selenium-webdriver selenium-ide

测试场景如下:

我创建了一些用户,例如。用户EF,用户GH等

现在我需要从用户列表中选择这些用户(用户按字母顺序排序,因此新创建的用户并不总是在顶部或底部,具体取决于用户名,它们可以介于两者之间)

现在我的开发人员正在使用unOrder列表来显示用户列表。

HTML代码如下:

<DIV class="reflex-ssl-result-list "> 
<UL> 
<LI><INPUT value="" type=checkbox><LABEL class=reflex-search-result-title></LABEL> 
<LI><INPUT value="" type=checkbox><LABEL class=reflex-search-result-title>A</LABEL> 
<LI><INPUT value="" type=checkbox><LABEL class=reflex-search-result-title>B</LABEL> 
<LI><INPUT value="" type=checkbox><LABEL class=reflex-search-result-title>C</LABEL> 
<LI><INPUT value="" type=checkbox><LABEL class=reflex-search-result-title>D</LABEL> 
<LI><INPUT value="" type=checkbox><LABEL class=reflex-search-result-title>E</LABEL> 
<LI><INPUT value="" type=checkbox><LABEL class=reflex-search-result-title>F</LABEL> 
<LI><INPUT value="" type=checkbox><LABEL class=reflex-search-result-title>G</LABEL> 
</UL> 
</DIV>

C和D是新创建的用户,这是我需要选择的用户。我怎样才能做到这一点?我试过xpath,但问题是新创建的用户的位置可以在任何地方。如果我一直在同一个位置选择用户,xpath对我有好处,但在我的场景中,我需要的不仅仅是xpath。

有什么建议吗?

4 个答案:

答案 0 :(得分:2)

使用XPath识别包含文本的标签(例如:'D'),向上移动一级到它的父级(LI),然后选择其中的input

//LABEL[.='D' and @class='reflex-search-result-title']/../INPUT

由于示例中的元素标记是大写的,有时Xpath区分大小写可能是一个问题,请检查How XPath Works in WebDriver以查看适用于您的内容。

答案 1 :(得分:0)

试试这个xpath

//label[contains(text(),'newly created user name')]

示例:如果您创建用户A

driver.findElement(By.xpath("//label[contains(text(),'A')]")).click();

因此,无论您的用户是在哪里创建的,都可以根据文本和HTML标签进行点击。

希望这有助于你

-AJ

答案 2 :(得分:0)

试试这个

<tr>
    <td>storeXpathCount</td>
    <td>//input[@name='NAME']</td>
    <td>total</td>
</tr>
<tr>
    <td>storeEval</td>
    <td>Math.floor(Math.random() * ${total} )+1</td>
    <td>index</td>
</tr>
<tr>
    <td>click</td>
    <td>xpath=(//input[@id='NAME'])[${index}]</td>
    <td></td>
</tr>

答案 3 :(得分:0)

的XPath:

E - // label [text()='E'] / preceding-sibling :: input

F - // label [text()='F'] / preceding-sibling :: input

G - // label [text()='G'] / preceding-sibling :: input

H - // label [text()='H'] / preceding-sibling :: input

与上面的XPath类似您可以单击任何复选框以创建用户组合

请让我知道我的基本工作与否?