Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
无法使用Xpath获取TH数据下方的TD数据_Xpath_Selenium - Fatal编程技术网

无法使用Xpath获取TH数据下方的TD数据

无法使用Xpath获取TH数据下方的TD数据,xpath,selenium,Xpath,Selenium,对于我的生活,我不明白为什么我不能抓住下面的第td文本 我尝试过这个('//th(包含(text(),“我需要的文本在此之后”)]它确实捕获了它想要捕获的实际行,但我尝试捕获的是该行下方td/a链接中的文本 追加('//th(包含(text(),“我需要的文本在此之后”)]/td/a')或仅 ('//th(包含(text(),“我需要的文本在此之后”)]/td')未找到任何匹配项 这是HTML <tr class=""> <th scope="row" styl

对于我的生活,我不明白为什么我不能抓住下面的第td文本

我尝试过这个('//th(包含(text(),“我需要的文本在此之后”)]它确实捕获了它想要捕获的实际行,但我尝试捕获的是该行下方td/a链接中的文本

追加('//th(包含(text(),“我需要的文本在此之后”)]/td/a')或仅 ('//th(包含(text(),“我需要的文本在此之后”)]/td')未找到任何匹配项

这是HTML

    <tr class="">
    <th scope="row" style="text-align:left;">Text I Need Is After This</th>
    <td class="" style="">
    <a href="/wiki/Queens" title="Queens">Queens</a>, 
    <a href="/wiki/New_York" title="New York">New York</a>, 
    <a href="/wiki/United_States" title="United States">United States</a>
    </td>
      </tr>

我需要的文本在此之后
, 
, 

/td/a
添加到第一条语句中会告诉XPath查找
的子节点,但它们不是。因此,如果要查找
节点,以及直接在其后面查找
的子节点,请使用
下面的同级
函数,如下所示:

//th[contains(text(), "Text I Need Is After This")]/following-sibling::td

您应该使用以下内容:

td[contains(preceding-sibling::text(), "Text I Need Is After This")]

在第一行中,你有一个“(”代替“[”。节点不是的子节点,它们是的子节点,是的子节点。他需要前面的子节点来测试
th
。你的子节点没问题,包括输入错误,我会在9分钟内接受答案(堆栈溢出还不允许)我用来获取td文本的路径也是,('//th[contains(text(),“Origin”]/following::td[1]')它抓取了我在th下面的td中需要的所有三个元素文本,谢谢大家,我喜欢这个网站。忘了添加xpath,更新了。另外,@kmkaplan的答案也很好,所以无论哪种方式对您的尝试更有意义。我站在正确的位置,先生。出于某种原因,我想得不太好,我道歉。