有人可以帮我创建一条允许我点击此复选框的路径吗?
我有一个页面,其中包含大约50个这样的框,其中唯一的区别是文本(在本例中为Answer Flow Designer)。我正在创建一个脚本数组的脚本,并通过它迭代选择每个匹配的复选框。
<td class="normal">
<input name="1.48.1.3.2.6.1.1.57.3" type="checkbox" value="0">Answer Flow Designer
</td>
答案 0 :(得分:2)
您可以使用以下内容来匹配所需的input
:
//td[contains(., "Answer Flow Designer")]/input
请注意,您无法使用
//input[contains(text(), "Answer Flow Designer")]
由于input
节点不能包含任何子节点(仅限属性),"Answer Flow Designer"
实际上是td
答案 1 :(得分:0)
这取决于整个html看起来如何说出
现在,您首先需要获取该用途的td标记内的输入标记数
<td class="normal">
<input name="1.48.1.3.2.6.1.1.57.3" type="checkbox" value="0">Answer
Flow Designer/>
<input name="anything new" type="checkbox" value="0">Another text/>
<input name="anything new" type="checkbox" value="0">Another text/>
<input name="anything new" type="checkbox" value="0">Another text/>
.
.
and last 50th
<input name="anything new" type="checkbox" value="0">Another text/>
</td>
如下所示迭代它们并从每个元素中获取文本
List<WebElments> tdtagselements=driver.findElement(By.xpath("//td[1]//input"));
for(int i=1;i<tdtagselements.size();i++){
String textInputtag=driver.findelement(by.xpath("//td[1]//input["+i+"]")).gettext();
}
使用此字符串与要验证文本的文本进行比较 让我知道您的HTML代码究竟是什么样的
答案 2 :(得分:-1)
//input[@type='checkbox' and contains(text(),'Answer Flow Designer')]
答案 3 :(得分:-1)
由于此复选框具有名称,您可以使用它。
driver.findElement(By.name("1.48.1.3.2.6.1.1.57.3")).click();
如果name不是唯一的,并且您希望通过以下文本查找元素,则可以使用
driver.findElement(By.xpath("//*[contains(., 'Answer Flow Designer')]//preceding-sibling::input")).click();