java - 如何连接两个 WebElement、迭代它并从连接的 Xpath 中获取文本

标签 java selenium serenity-bdd

我正在使用页面对象模型

我的页面对象如下:

    @FindBy(xpath = "//kendo-grid-list//table/tbody/tr/td[9]//div/p")
    List<WebElement> milestoneListSize;

    private static final String milestoneEditButton1 = "//uif-checklist-complex-group[";

    private static final String milestoneEditButton2 = "]//uif-checklist-table/table/tbody/tr/td[6]//a";

    public void clickMilestoneUser(milestoneListSize, String milestoneEditButton1 , String milestoneEditButton2 ) {

        String Actual;
        int totalsize = milestoneListSize.size();

        for (int i = 1; i <= totalsize; i++) {
        Actual = driver.findElement(By.xpath(milestoneEditButton1 + i + milestoneEditButton2)).getText();
        System.out.println(Actual );
        }

    }

不知道为什么这段代码不起作用? 感谢您提前提供帮助

最佳答案

您的代码存在几个问题,但我无法涵盖所有​​问题。

  • 您已将 MilestoneEditButton(1&2) 定义为“私有(private)静态”字段,这意味着可以从此类中的每个方法内部访问它们,并且不需要将它们作为方法参数传递。

  • 您可以使用单个字符串模板,而不是使用 2 个单独的部分来构造定位器:

    private static final String XPATH_EDIT_BTN = "//uif-checklist-complex-group[%d]//uif-checklist-table/table/tbody/tr/td[6]//a";
    

可用于构造定位器:

By.xpath(String.format(XPATH_EDIT_BTN, i))
  • 每次调用“Actual = ...”时,都会重新分配“Actual”变量的值。您应该使用“Actual += ...”,但最好使用 StringBuilder:

    StringBuilder buffer = new StringBuilder();
    for (int i = 1; i <= totalsize; i++) {
        By loc = By.xpath(String.format(XPATH_EDIT_BTN, i));
        buffer.append(driver.findElement(loc).getText());
    }
    System.out.println(buffer.toString());
    

关于java - 如何连接两个 WebElement、迭代它并从连接的 Xpath 中获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60222742/

相关文章:

c# - 添加 DotNetSeleniumExtras 包扩展时引用类型错误

selenium - 平静地忽略屏幕阅读器文本

gradle - CucumberWithSerenity:initializationError(serenity.TestRunner):net/thucydides/core/guice/Injectors

java : For loop isn't breaking after reaching a particular condition .

Java正则表达式有多种可能的结尾

java - 让 JavaFX 通过浏览器运行简单的 HelloWorld 应用程序

Selenium:如何将数据添加到文本框或文本区域

java - 线程 "main"java.lang.NoClassDefFoundError : org/openqa/selenium/WebDriver 中出现异常

java - Serenity BDD 报告不显示带有示例的故事(嵌入式表格)

java - JPanel 不显示图像?