【发布时间】:2017-02-26 16:47:33
【问题描述】:
<div class="inner-article">
<a style="height:150px;" href="this is a link"><img width="150" height="150" src="this is an image" alt="K1 88ahiwyu"></a>
<h1><a class="name-link" href="/shop/jackets/pegroxdya/dao7kdzej">title</a></h1>
<p><a class="name-link" href="/shop/jackets/pegroxdya/dao7kdzej">subtitle</a></p>
</div>
你好!
我需要找到一个 XPath 来获取两个“a”孩子的标题和副标题为 class="inner-article" 的“div”。我要操作的网站有很多这样的内文,我需要找到一个具体的,只给一个标题和一个副标题。
例如:该网站有一篇标题为“Company® Leather Work Jacket”的内部文章和一个颜色为“Silver”的副标题。
现在我需要能够找到“div”元素,即使标题只有关键字“Work Jacket”,副标题只有“Silver”。
这是我已经想到的:
e1 = driver.find_element_by_xpath("//*[text()[contains(.,'" + kw + "')]]")
kw 是一个包含标题关键字的字符串,如果我将其打印出来,它会正确响应“a”元素并单击它也可以,但它不够具体,因为还有更多对象也有这些关键字在他们的标题中,这就是为什么我还需要始终包含颜色的副标题(这里称为字符串“clr”):
e2 = driver.find_element_by_xpath("//*[text()[contains(.,'" + clr + "')]]")
这也可以正常点击字幕,但只有颜色也会在网站上返回多个对象。
这就是为什么我需要找到带有标题关键字和副标题颜色的“div”元素。
我试过了,但它不起作用:
e1 = driver.find_element_by_xpath("//*[text()[contains(.,'" + kw + "') and contains(.,'" + clr + "')]]")
【问题讨论】: