<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”孩子的Title和Subtitle获得带有class =“inner-article”的“div”。我想要操作的网站有很多这些内部文章,我需要找到一个特定的,只有标题和副标题。
E.G。:该网站的内部文章标题为“Company®LeatherWork 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 + "')]]")
答案 0 :(得分:1)
尝试
driver.find_element_by_xpath("//div[h1/a[contains(text(),'" + kw + "')] and p/a[contains(text(),'" + clr + "')]]")
答案 1 :(得分:0)
您可以了解更多xpath语法。Refer to this link
在您的情况下,您可以像这样使用xpath。
("//*[text()[contains(.,'" + kw + "')]]/parent::div[1]")