将 xpath 从字符串转换为 WebElement

Converting xpath from String to WebElement

现在我在 BasePage 中使用以下方法,我希望将此方法调用到我的其他页面。

所以在下面的方法中,参数是(String xpathExpression),如何将其更改为WebElement并使用将在其他页面中定义的其他元素定位器。

protected boolean CheckSorting(String xpathExpression) {
    List<WebElement> issueTypeDropdown = new LinkedList<>(driver.findElements(By.xpath(xpathExpression)));
    LinkedList<String> issueTypes = new LinkedList<String>();
    for (int i = 0; i < issueTypeDropdown.size(); i++) {
        //System.out.println(issueTypeDropdown.get(i).getText());
        issueTypes.add(issueTypeDropdown.get(i).getText());
    }
    return Compare(issueTypes);
}

您无法从 WebElement 获取定位器。如果您希望定位器策略是动态的,您可以将 By 发送到方法

protected boolean CheckSorting(By by) {
    List<WebElement> issueTypeDropdown = new LinkedList<>(driver.findElements(by));
    //...
}

使用:

CheckSorting(By.xpath(xpathExpression));