Xpath语句中的Selenium Python多个类

2024-10-01 07:50:48 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能告诉我在Xpath查询中是否可以引用2个类? 请看下面。运行此脚本时出错。我通过Selenium使用python2.7。在

list_ppl_link =  driver.find_element_by_xpath('//div[@class="pro-tease"]//div[@class="pro-tease even"]')   

Tags: div脚本bydriverseleniumlinkelementfind
2条回答

您应该能够选择具有多个类的元素,如下所示:

//div[contains(@class, "pro-tease") and contains(@class, "even")]

这将选择既有pro-tease和{}类的div,例如

^{pr2}$

但是,它不会选择只有两个指定类中的一个的div。如果要选择具有一个类或另一个类的元素,请尝试以下操作:

//div[contains(@class, "pro-tease") or contains(@class, "even")]

现在,如果你有四个div:

  1. <div class="pro-tease irrelevant">...</div>
  2. <div class="even irrelevant">...</div>
  3. <div class="not specified">...</div>
  4. <div class="pro-tease even">...</div>

将选择1、2、4,因为它们都包含pro-teaseeven。在

至此,您可能已经注意到contains()确实做到了它所说的:检查类名是否包含指定的参数。因此,如果您将两个contains()and连接起来,您基本上是说“给我包含这个类的元素,也包括这个类”,而使用or则更像是“给我包含这个类、这个类的元素”。在

顺便说一下,您可以通过搜索元素(Ctrl+F)在Chrome开发人员模式(Ctrl+Shift+I)下测试查询。如果您的查询在浏览器中不起作用,那么它在其他地方也可能不起作用。在

How to get html elements with multiple css classes

你要找的是//div[contains(@class, 'class1') and contains(@class, 'class2')]

相关问题 更多 >