Java 在selenium中使用变量循环

Java 在selenium中使用变量循环,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我有一个要求,我从一个站点获取文本,然后在以后的循环中使用它,这样它就可以继续单击基于该变量的元素。这是可行的,但只循环了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.findE

我有一个要求,我从一个站点获取文本,然后在以后的循环中使用它,这样它就可以继续单击基于该变量的元素。这是可行的,但只循环了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(); 
String vText=driver.findElement(By.xpath(“).getText();
System.out.println(vText);
int vEle=vText.length();

对于(int i=0;i,您可能需要验证从哪里获取文本的定位器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
}
//它将返回具有相同定位器的webelements列表
列表元素=driver.findElements(By.xpath(“”);
//现在遍历列表并对每个元素执行所需的操作
for(WebElement ele:element)
{
ele.getText();//它将打印每个元素的内部文本
ele.click();//它将单击每个元素
}

我认为您示例中的错误如下:

int vEle= vText.length(); 
稍后,您的循环是:

for (int i=0; i<vEle; i++){

for(inti=0;i多亏了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(); 
}   
String vText driver.findElement(By.xpath(“”).getText();
//这会将输出从斜杠中分割出来,输出看起来像1/120
最后一个字符串[]splitted=vText.split(\\D+);
//在这里,它将把输出解析为整数类型,并从第一个位置开始
final int slideCount=Integer.parseInt(拆分为[1]);

对于(int i=0;我能解释一下你在问什么吗?很难说你在寻找什么样的答案。你只是在循环它直到文本的长度。所以我相信长度只有5分钟后循环才会结束。你的代码
String vText=driver.findElement(By.xpath(“).getText()中有语法错误
没有结束引号。如果你能看到
vText
的内容以及你希望它有什么内容,那也很好。你真的根据你在vText中得到的字符串长度循环了很多元素吗?如果你在最初的问题中说
vText
会有一个预期出现
1/120
,您希望循环“/”后面的数字的次数你会得到一个更简洁、更快的答案。如果没有看到你试图在其中查找元素的html,你很难知道这是否是最好的方法。@Madi如果你试图在DOM中找到许多位置相似的元素,这种模式几乎总是最可靠的。你通常可以使它成为一种更强大的模式如有必要,请使用相对XPath。