<input id="columns:4:fragParent:values_911" name="columns:4:fragParent:values" value="911" type="checkbox">
<label for="columns:4:fragParent:values_911">OPS - Amol Gharte</label>
<br>
<input id="columns:4:fragParent:values_973" name="columns:4:fragParent:values" value="973" type="checkbox">
<label for="columns:4:fragParent:values_973">OPS - Anand Babu</label>
<br>
<input id="columns:4:fragParent:values_1336" name="columns:4:fragParent:values" value="1336" type="checkbox">
<label for="columns:4:fragParent:values_1336">OPS - Ashwini Saravanan</label>
我可以使用selenium使用下面的代码单击复选框。
driver.findElement(By.xpath("//label[text()='OPS - Amol Gharte']")).click();但我必须选择所有的“老年退休金计划”。是否有可能在selenium中使用regex或任何其他可能性?
driver.findElement(By.xpath("//label[text()='^OPS*']")).click();我试过这样的方法,但失败了
发布于 2017-05-31 16:46:48
首先,使用以下方法捕获所有此类项目:
List<WebElement> itemList = driver.findElements(By.xpath("//label[contains(text(),'OPS')]"));或使用
List<WebElement> itemList = driver.findElements(By.xpath("//label[starts-with(text(),'OPS')]"));然后依次单击所有复选框,如下所示:
for(WebElement item : itemList ){
item.click();
}发布于 2017-05-31 15:47:03
您可以找到所有包含"OPS“的标签,如下所示:
driver.findElements(By.xpath("//label[contains(text(),'OPS')]"))注意,我使用的是"findElements“。然后,您可以将所有这些元素分配给一个数组,并有一个"for“循环来对每个元素执行操作。
发布于 2017-06-01 00:40:10
同意"Sebastian L“的回答,但最好在定位器中添加破折号(因为一些文本可能只包括OPS在任何其他部分)。如果您确信值总是以OPS开头,则可以使用:
driver.findElements(By.xpath("//label[starts-with(text(), 'OPS -')]"))https://stackoverflow.com/questions/44289135
复制相似问题