我必须使用其后面的标签来标识一个复选框。 代码如下:
<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都会找到标签文本而不是复选框。
有人可以帮助我吗?
提前谢谢
答案 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']目标。