如何串联两个webelement,对其进行迭代并从串联的Xpath中获取文本

问题描述 投票:0回答:1

我正在使用Page对象模型

我的页面对象如下:

@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 );
		}

	}

public void clickMilestoneUser(milestoneListSize,字符串MilestoneEditButton1,字符串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 );
    }

}

不知道为什么这段代码不起作用?预先感谢您的帮助

java selenium serenity-bdd
1个回答
0
投票
您正在将每个元素的文本分配给'Actual'变量,因此将其先前的值覆盖。

您也叫'findelementT'而不是'findElementS'

Ypu应该使用StringBuilder来收集结果:

public static String concatElementsText(WebDriver driver, By locator){ StringBuilder buffer = new StringBuilder(); for(WebElement element: driver.findElements(locator)) buffer.append(element.getText()); return buffer.toString(); }

© www.soinside.com 2019 - 2024. All rights reserved.