【问题标题】:How to get value between parent and child node using xpath?如何使用 xpath 在父节点和子节点之间获取值?
【发布时间】:2016-05-04 04:07:04
【问题描述】:

我想使用 Xpath 提取父节点和子节点之间的值。如何实现?

**<div class="Shareaccess">
    Value to be extract
       <a href="javascript:shareAccessValue()" id="shareKey">
             KEY
       </a>
       <span></span>
  </div>**

如何将文本值输出为“要提取的值”? 它不应该是'要提取KEY的值'。 'KEY' 应该被忽略。

【问题讨论】:

    标签: selenium selenium-webdriver xpath


    【解决方案1】:

    您可以从结果中删除子文本

    Java 语法

    String allText = driver.findElement(By.className("Shareaccess")).getText();
    String childText = driver.findElement(By.id("shareKey")).getText();
    String parentText = allText.replace(childText, "");
    

    parentText 将是“要提取的值”

    【讨论】:

    • 但是是否可以创建单个 xpath 来忽略结果中的子文本而不使用 java 函数?只有 xpath 应该忽略内容。
    • @SanketChandak 不,selenium 目前不支持它。另一种选择是使用JavaScript
    • @SanketChandak 你是什么意思? Selenium API 不支持它,我无法提供更多信息。
    【解决方案2】:

    试试这个

    C#:

    string parentText = driver.FindElement(By.XPath("//a[@id='shareKey']/parent::div").Text().Replace(driver.FindElement(By.XPath("//a[@id='shareKey']").Text(),"");
    

    【讨论】:

    • 是的,看到它来了,所以我更改了代码尝试新的代码,就像在另一个示例中一样,但是在一行中并且要定义的变量更少。
    猜你喜欢
    • 2023-03-16
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    相关资源
    最近更新 更多