Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium 如何使用xpath在父节点和子节点之间获取值?_Selenium_Selenium Webdriver_Xpath - Fatal编程技术网

Selenium 如何使用xpath在父节点和子节点之间获取值?

Selenium 如何使用xpath在父节点和子节点之间获取值?,selenium,selenium-webdriver,xpath,Selenium,Selenium Webdriver,Xpath,我想使用Xpath提取父节点和子节点之间的vale。如何做到这一点 **<div class="Shareaccess"> Value to be extract <a href="javascript:shareAccessValue()" id="shareKey"> KEY </a> <span></span> </div>** ** 要

我想使用Xpath提取父节点和子节点之间的vale。如何做到这一点

**<div class="Shareaccess">
    Value to be extract
       <a href="javascript:shareAccessValue()" id="shareKey">
             KEY
       </a>
       <span></span>
  </div>**
**
要提取的值
**
如何将文本值输出为“要提取的值”? 提取键不应为“值”。
应忽略“键”

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

Java语法

parentText
将是“要提取的值”

试试这个

C#:

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

但是,在不使用java函数的情况下,是否可以创建忽略结果中的子文本的单个xpath?只有xpath应该忽略内容。@SanketChandak不,selenium当前不支持它。另一个选择是使用@SanketChandak你是什么意思?Selenium API不支持它,我不能提供更多的信息。是的,我看到了它的出现,所以我更改了代码,尝试新的代码,就像在另一个示例中一样,但在一行中,定义的变量更少。
string parentText = driver.FindElement(By.XPath("//a[@id='shareKey']/parent::div").Text().Replace(driver.FindElement(By.XPath("//a[@id='shareKey']").Text(),"");