【问题标题】:Using Selenium, xpath gets tags but text is empty使用 Selenium,xpath 获取标签但文本为空
【发布时间】:2013-06-27 17:21:42
【问题描述】:

我正在使用 Selenium WebDriver 通过 XPATH 获取一堆标签。 xpath 成功找到标签,但返回的 IWebElements 的“Text”属性为空。

这是 HTML:

<ul>
<li id="foo1">someValue</li>
<li id="foo2">someOtherValue</li>
</ul>

还有 xpath:

//ul/li[startswith(@id, 'foo')]

有什么想法吗? Xpath 肯定会抓取正确的元素,但 Text 元素是空的。

【问题讨论】:

    标签: selenium


    【解决方案1】:

    试试这个代码来获取第二个元素的文本 - &lt;li id="foo2"&gt;someOtherValue&lt;/li&gt;

    WebElement fooEle = driver.findElement(By.xpath("//descendant::ul/li[starts-with(@id,'foo')][2]"));
    String fooEleText = fooEle.getText();
    System.out.println("foo Element Text -" + fooEleText); //should print expected text "someOtherValue"
    

    注意-如果要获取第一个元素文本,则更改 xpath 的索引值 即//descendant::ul/li[starts-with(@id,'foo')][1]

    【讨论】:

    • “descendant::”前缀的作用是什么?
    • 它是一个 XPATH 轴。 “descendant”轴包含上下文节点的后代;后代是孩子或孩子的孩子等等;
    • 我试过了,虽然它确实有效地抓取了整个轴,但
    • IWebElement 实例的文本元素仍然是空的。有什么想法吗?
  • 检查xpath下面是否找到需要的
  • : //li[text()='someOtherValue' ;只是为了确保我们正在尝试访问所需的 li。
  • 它肯定会找到
  • 标签。但是 IWebElement 实例具有空的 Text 值。
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签