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

标签 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 次。

我当前的输出: 阿皮姆 阿皮姆 阿皮姆 阿皮乌姆

预期输出 阿皮姆 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/

相关文章:

python - selenium.common.exceptions.WebDriverException : Message: Can not connect to the Service error using ChromeDriver Chrome through Selenium Python

java - 处理具有相似页面逻辑但不同定位器的环境

java - 如何使用 Java 在 Selenium2 (Webdriver) 中输入 Gmail 正文

java - com.sun.mail.smtp.SMTPSendFailedException : 530-5. 5.1 需要身份验证(Java 邮件)

java - 打印数组元素而不重复元素

java - 在类 com.potenza_pvt_ltd.AAPS.TruckDetailsActivity 上找不到车辆类型的 setter /字段

java - 使用 Selenium ChromeDriver 和 Chrome 时出现错误 org.openqa.selenium.WebDriverException 断开连接 : received Inspector. 分离事件

java - WebDriver 和 IE10 输入非常慢

selenium - 使用 RobotFramework 测试复制/粘贴

python - 什么是 python 的 useAutomationExtension for selenium?