我有一个要求,我从一个站点获取文本,然后在循环中使用它,以便它可以继续单击基于该变量的元素。这可以工作,但只循环5次,它应该点击的次数是100或更高。这是代码的示例
String vText= driver.findElement(By.xpath(")).getText();
System.out.println(vText);
int vEle= vText.length();
for (int i=0; i<vEle; i++){
driver.findElement(By.xpath("")).click();
我做错了什么,请帮帮我
谢谢, Mediha
答案 0 :(得分:2)
您可能需要验证定位器的文本位置100次。如果它对所有100个元素都相同,那就可以了。
您是否尝试过 findElements 方法?
//It will return the List of webelements which has same locator
List<WebElement> elements=driver.findElements(By.xpath(""));
//Now iterate through List and do the required operation with each individual element
for(WebElement ele:element)
{
ele.getText(); //It will print innertext of each element
ele.click(); //It will click on each element
}
答案 1 :(得分:0)
我认为你的例子中的错误就在这一行:
int vEle= vText.length();
以后你的循环是:
for (int i=0; i<vEle; i++){
这意味着youl循环只会发生很多次,因为文本很长。因此,如果文本为Hello
,则循环将仅发生5次。
答案 2 :(得分:0)
感谢Santosh和Pavel,
我实际上找到了另一种方法,虽然我会查看你发给我Santosh的代码。但这是我提出的代码,请给我评论这是否是最好的方法。
String vText driver.findElement(By.xpath("")).getText();
//This will split the output from the slash and the output looks like 1/120
final String[] splitted = vText.split("\\D+");
//Here it will parse that output to an integer type and start with the first location
final int slideCount = Integer.parseInt(splitted[1]);
for (int i=0; i<slideCount; i++) {
driver.findElement(By.xpath("")).click();
}