firefox - 使用 Firefox WebDriver 时选择所有具有文本的节点的 Xpath 表达式是什么?

标签 firefox xpath selenium webdriver

我想选择所有包含文本的节点。

在此示例中,不应选择外部 shouldBeIgnored 标记:

<shouldBeIgnored>
    <span>
        the outer Span should be selected
    </span>
</shouldBeIgnored>

其他一些帖子建议这样://*/text()
但是,这在 firefox 中不起作用。

这是重现问题的小型单元测试:

 public class XpathTest {
    final WebDriver webDriver   = new FirefoxDriver();

    @Test
    public void shouldNotSelectIgnoredTag() {

        this.webDriver.get("http://www.s2server.de/stackoverflow/11773593.html");

        System.out.println(this.webDriver.getPageSource());

        final List<WebElement> elements = this.webDriver.findElements(By.xpath("//*/text()"));

        for (final WebElement webElement : elements) {
            assertEquals("span", webElement.getTagName());
        }
    }

    @After
    public void tearDown() {
        this.webDriver.quit();
    }
 }

最佳答案

如果你想选择所有包含文本的节点,那么你可以使用

//*[text()]

上面的 xpath 将查找任何包含文本的元素。注意 text()判断当前节点是否有文本的函数。

在您的情况下,它将选择 <span>标签,因为它包含文本。

关于firefox - 使用 Firefox WebDriver 时选择所有具有文本的节点的 Xpath 表达式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11773593/

相关文章:

java - 用 xpath 替换对象列表中的值?

testing - 我是使用 Selenium 进行自动化测试的新手。运行自动化测试需要什么?

java - 在与 Selenium 一起使用时如何验证 cucumber jar

css - 在 FireFox 中使用显示表格单元格和 float 元素时宽度错误

javascript - Firefox 中未定义 Window.getSelection - 区分大小写

javascript - float 容器不会在内容收缩时收缩

c# - 通过部分填充属性定位元素 Selenium/C#

java - Java中的 Selenium : Not able to locate element on Amazon

Firefox 浏览器 20 支持 selenium-webdriver

asp.net-mvc - 将开放搜索功能添加到现有 ASP.NET MVC 网站的步骤是什么?