![](/img/trans.png)
[英]Xpath issue, trying to locate a element based off the results of another
[英]Locate an element based on another element xpath
我正在尝试使用 selenium 和 webdriver 自动化流程。
html 看起来像这样:
<span class="contract-item">
<span class="contract-label">
<span class="contract-name">Jimmy</span>
</span>
<div class="current-stats">
<span class="info"></span>
我面临的问题是有很多“合同项目”和“信息”类。 我只想查找特定“合同名称”的信息。 但是,通过找到“合同名称”,我丢失了信息。 如何获取特定名称的“信息”?
到目前为止我有这个。
team_name = self.driver.find_elements_by_xpath("//*[contains(text(), {})]".format(jimmy))[1]
非常感谢!
下面是需要的 xpath:
//*[@class='contract-item' and contains(.,'Jimmy')]/div/span[@class='info']
您只需将联系人姓名字符串(即 Jimmy)更改为所需的字符串,您将获得相应的信息。
您需要首先获取包含名称的元素,您正确地做到了
//*[contains(text(), "{}")]
然后你需要 go 在 info 元素和你找到的元素之间最近的公共父级,每个/..
将 go HTML 树上的一个元素。
//*[contains(text(), "{}")]/../..
最后,通过 class 找到正确的元素过滤
//*[contains(text(), "{}")]/../..//span[@class="info"]//text()
所以,你的表达应该是:
team_name = self.driver.find_elements_by_xpath('//*[contains(text(), "{}")]/../..//span[@class="info"]//text()'.format('jimmy'))[1]
不应该像"//*[contains(text(), {})]".format("jimmy")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.