java - 将 xpath 从 String 转换为 WebElement

标签 java selenium selenium-webdriver automation pageobjects

现在我在 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));

关于java - 将 xpath 从 String 转换为 WebElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50962542/

相关文章:

java - .csv 文件中文本的内部链接(在 Java 中)

java - 具有个体截止时间的任务调度算法

selenium - FunCaptcha回调函数中如何提交token?

java - 如何在 Selenium webdriver 中等待输入字段刷新

python - 如何从以前保存的 splinter 实例中在 splinter 中设置 cookie?

java - 如何画颜色

python - 如何在 python 的 selenium webdriver 中禁用 chrome 通知弹出窗口

java - 在每次运行时为 PhantomJs 使用相同的 session

python - Selenium 找不到元素

java - 如果 Jackson Json 类字段扩展了 ArrayList,则无法序列化