我正在尝试打印按钮的文本,但每次运行 for 循环时,我都没有从按钮获取下一个文本,而是第一个按钮的文本始终打印到控制台。
任何人都可以帮助理解我哪里犯了错误吗?
public static void main(String[] args) throws InterruptedException {
WebDriver driver = new FirefoxDriver();
driver.get("http://www.example.com/example.php");
for (int i = 1; i <= 4; i++) {
System.out.println(driver.findElement(By.xpath("//div[@class='responsive- tabs responsive-tabs--enabled']/ul/li['+ i +']")).getText());
Thread.sleep(3000);
}
}
上面是我的代码,如果我尝试单独打印按钮的文本而不是进入 for 循环,我可以打印,但是当我在 for 循环中获取相同的文本时,我仅从第一个按钮获取文本 4 次。
我当前的输出: 阿皮姆 阿皮姆 阿皮姆 阿皮乌姆
预期输出 阿皮姆 Selenium 应用程序编程接口(interface) 测试
最佳答案
您可以使用 for every 循环来代替 for 循环,如下所示:
请注意,我正在使用 findElements
,以便我可以迭代列表。
List<WebElement> elements = driver.findElements(By.xpath("//div[@class='responsive- tabs responsive-tabs--enabled']/ul/li"))
for(WebElement ele : elements){
System.out.println(ele.getText());
}
关于java - 如何从所有按钮打印文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51579440/