Selenium Web Page使用正则表达式访问元素

时间:2017-05-31 15:41:21

标签: java selenium



<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>
&#13;
&#13;
&#13;

我可以使用selenium java。下面的代码点击复选框。

driver.findElement(By.xpath("//label[text()='OPS - Amol Gharte']")).click();

但我要求选择所有&#34; OPS&#34;。是否有可能在硒中使用正则表达式或任何其他可能性

driver.findElement(By.xpath("//label[text()='^OPS*']")).click();

我尝试了类似的东西,但失败了

3 个答案:

答案 0 :(得分:0)

您可以找到包含&#34; OPS&#34;的所有标签,如下所示:

driver.findElements(By.xpath("//label[contains(text(),'OPS')]"))

请注意,我正在使用&#34; findElements&#34;。然后你可以将所有这些元素分配给一个数组,然后有一个&#34; for&#34;循环执行每个操作。

答案 1 :(得分:0)

首先使用以下方法捕获所有此类项目:

'qty'

或使用

  List<WebElement> itemList = driver.findElements(By.xpath("//label[contains(text(),'OPS')]"));

然后依次单击所有复选框,如下所示:

List<WebElement> itemList = driver.findElements(By.xpath("//label[starts-with(text(),'OPS')]"));

答案 2 :(得分:0)

同意“Sebastian L”的答案,但最好在定位器中添加短划线(因为某些文本可能只包括OPS在任何其他部分)。如果您确定值始终以OPS开头,则可以使用:

driver.findElements(By.xpath("//label[starts-with(text(), 'OPS -')]"))