Python XPath从两个子文本中获取父元素

Python XPath从两个子文本中获取父元素,python,selenium,xpath,Python,Selenium,Xpath,kw是一个包含标题关键字的字符串,如果我打印出来,它会正确响应“a”元素,单击它也会起作用,但它不够具体,因为有更多的对象标题中也包含这些关键字,这就是为什么我还需要始终包含颜色的字幕(此处称为字符串“clr”): 这也可以正常工作并正确点击字幕,但只有颜色也会返回网站上的多个对象 这就是为什么我需要找到“div”元素,其中标题为关键字,副标题为颜色 我试过这个,但不起作用: e2 = driver.find_element_by_xpath("//*[text()[contains(.

kw是一个包含标题关键字的字符串,如果我打印出来,它会正确响应“a”元素,单击它也会起作用,但它不够具体,因为有更多的对象标题中也包含这些关键字,这就是为什么我还需要始终包含颜色的字幕(此处称为字符串“clr”):

这也可以正常工作并正确点击字幕,但只有颜色也会返回网站上的多个对象

这就是为什么我需要找到“div”元素,其中标题为关键字,副标题为颜色

我试过这个,但不起作用:

    e2 = driver.find_element_by_xpath("//*[text()[contains(.,'" + clr + "')]]")

您可以学习更多xpath语法

在您的例子中,可以像这样使用xpath

e1 = driver.find_element_by_xpath("//*[text()[contains(.,'" + kw + "') and contains(.,'" + clr + "')]]")
试一试


谢谢,但我还需要在XPath中实现副标题,因为正如我所说的,仅标题还不够具体,并且会给出不止一个结果。您可以在两个查询之间使用“and”语句。非常感谢,这太完美了!
    e2 = driver.find_element_by_xpath("//*[text()[contains(.,'" + clr + "')]]")
e1 = driver.find_element_by_xpath("//*[text()[contains(.,'" + kw + "') and contains(.,'" + clr + "')]]")
("//*[text()[contains(.,'" + kw + "')]]/parent::div[1]")
driver.find_element_by_xpath("//div[h1/a[contains(text(),'" + kw + "')] and p/a[contains(text(),'" + clr + "')]]")