Java 在selenium中使用变量循环
我有一个要求,我从一个站点获取文本,然后在以后的循环中使用它,这样它就可以继续单击基于该变量的元素。这是可行的,但只循环了5次,它应该点击的次数大约为100次或更多。下面是一个代码示例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
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。