【发布时间】:2015-03-18 18:16:48
【问题描述】:
有没有办法找到一个元素旁边的另一个元素,如下例所示?我试图通过首先找到“更新频率”一词来检索“每日”一词。我认为 XPath 将是唯一的方法,但我不确定如何获得它,因为它不是子元素。
【问题讨论】:
-
请不要将我们链接到图片,将您的代码作为文本发布在这里。
-
你试过什么?
有没有办法找到一个元素旁边的另一个元素,如下例所示?我试图通过首先找到“更新频率”一词来检索“每日”一词。我认为 XPath 将是唯一的方法,但我不确定如何获得它,因为它不是子元素。
【问题讨论】:
试试这个 xpath:
//*[contains(text(),'Frequency of Update')]/ancestor::td/following-sibling::td
这将首先在 DOM 中定位具有 innerHTML/text 'Frequency of Update' 的元素,然后从其所有祖先中定位 'td' 元素,然后定位作为其兄弟元素的 'td' 元素,该元素具有“每日”文本
【讨论】:
你可以找到这样的元素:
element = driver.find_element_by_xpath('//td[//*[contains(text(),"Frequency of Update")]]')
next_element = element.find_element_by_xpath('./following-sibling::td')
如果你想通过定位元素找到另一个元素,
Xpath 应该以 ' 开头。 '
【讨论】:
如果它是元素的兄弟,你应该使用以下 xpath:
/following-sibling::td
element = <the element you retrived by locating "Frequency of Update">
element.find_element_by_xpath('/following-sibling::td')
【讨论】: