我正在尝试使用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]
非常感谢!
答案 0 :(得分:1)
下面是必需的xpath:
// * [@ class ='contract-item'和 contains(。,'Jimmy')] / div / span [@ class ='info']
您只需要将联系人姓名字符串(即Jimmy)更改为所需的联系人姓名,即可获得相应的信息。
答案 1 :(得分:0)
您需要首先获取包含名称的元素,您正确地做到了
//*[contains(text(), "{}")]
然后,您需要在info元素和找到的元素之间找到最接近的公共父元素,每个/..
将在HTML树上增加一个元素。
//*[contains(text(), "{}")]/../..
最后,找到按类过滤的正确元素
//*[contains(text(), "{}")]/../..//span[@class="info"]//text()
所以,您的表情应该是:
team_name = self.driver.find_elements_by_xpath('//*[contains(text(), "{}")]/../..//span[@class="info"]//text()'.format('jimmy'))[1]