如何在selenium IDE中识别输入后跟标签?

时间:2011-05-24 09:32:47

标签: selenium

我必须使用其后面的标签来标识一个复选框。 代码如下:

<input type="checkbox" checked="" value="1" id="email-100-100" name="email-100-100">
<label for="email-100-100" class="firefinder-match">Email me when someone asks me to set a flag</label>
<br>
</td>

我试过

目标:// follow-sibling :: label [text()=“当有人要我设置标志时给我发电子邮件”] 目标:// preceding-sibling :: label [text()=“当有人要我设置标志时给我发电子邮件”]

但在这两种情况下,selenium都会找到标签文本而不是复选框。

有人可以帮助我吗?

提前谢谢

2 个答案:

答案 0 :(得分:3)

尝试

Target://label[text()="Email me when someone asks me to set a flag"]/../input[@type='checkbox']

只要标签的包含元素和复选框中只有一个复选框,它就会起作用。

答案 1 :(得分:0)

您还可以找到包含文本的标签,这对于部分匹配很有用。在我的情况下,我有这样的事情:

<label for="blah">
     <input name="blah" id="blah" type="checkbox" />
     Store Locator Plus
</label>

已接受的解决方案适用于所引用的具体示例,但需要完全匹配。由于这出现在搜索结果的顶部,我想我也会在这里提出部分匹配解决方案。

对于Selenium IDE,您可以设置如下目标:

//label[contains(text(),'Store Locator Plus')]//input[@type="checkbox"]

包含函数是必需的,因为标签文本也有一个HTML元素,它阻止了// label [text()='Store Locator Plus']目标。