如何从所有按钮打印文本?

时间:2018-07-29 10:37:14

标签: java selenium selenium-webdriver

我正在尝试打印按钮的文本,但是每次我的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次文本。

我当前的输出: 阿皮 阿皮 阿皮 鸦片

预期输出 阿皮 硒 API 测试

1 个答案:

答案 0 :(得分:1)

代替 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());
}