HTML代码片段供参考:
<tr>
</tr>
<tr>
<td class="gridTD">TITLE</td>
<td class="gridTD">NAME</td>
</tr>
<tr>
</tr>
有一系列
tr
元素的位置发生变化,所以我必须从
td
子元素。
我正试着抓住
第二
td
通过匹配
第一
td
元素,但我不知道如何访问它。
我刚接触Selenium,刚刚开始使用XPath定位元素。
这些元素可以很好地返回第一个元素:
n = driver.find_element_by_xpath("//*[@id='divDistrictContacts']/table/tbody//tr//*[text()='TITLE]")
n = driver.find_element_by_xpath("//*[@id='divDistrictContacts']/table/tbody//tr/td[text()='TITLE]")
但我不知道接下来该怎么办。我试着查找它,但似乎找不到如何从第一个元素的匹配文本中获取第二个元素。
我尝试在[text()=“TITLE']之后的变体中添加[position()=2]和[2],并更改xpath中的//和*,结果要么是“没有这样的元素”,要么是xpath无效。
如果这有帮助的话,这就是完整的xpath(我用I替换了tr索引,因为它是一个不可靠的值):
/html/body/div[1]/div[2]/div[5]/table/tbody/tr[i]/td[2]