2024-10-01 07:50:48 发布
网友
有人能告诉我在Xpath查询中是否可以引用2个类? 请看下面。运行此脚本时出错。我通过Selenium使用python2.7。在
list_ppl_link = driver.find_element_by_xpath('//div[@class="pro-tease"]//div[@class="pro-tease even"]')
您应该能够选择具有多个类的元素,如下所示:
//div[contains(@class, "pro-tease") and contains(@class, "even")]
这将选择既有pro-tease和{}类的div,例如
pro-tease
div
但是,它不会选择只有两个指定类中的一个的div。如果要选择具有一个类或另一个类的元素,请尝试以下操作:
//div[contains(@class, "pro-tease") or contains(@class, "even")]
现在,如果你有四个div:
<div class="pro-tease irrelevant">...</div>
<div class="even irrelevant">...</div>
<div class="not specified">...</div>
<div class="pro-tease even">...</div>
将选择1、2、4,因为它们都包含pro-tease或even。在
even
至此,您可能已经注意到contains()确实做到了它所说的:检查类名是否包含指定的参数。因此,如果您将两个contains()与and连接起来,您基本上是说“给我包含这个类的元素,和也包括这个类”,而使用or则更像是“给我包含这个类、或这个类的元素”。在
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')]
//div[contains(@class, 'class1') and contains(@class, 'class2')]
您应该能够选择具有多个类的元素,如下所示:
这将选择既有}类的
^{pr2}$pro-tease
和{div
,例如但是,它不会选择只有两个指定类中的一个的div。如果要选择具有一个类或另一个类的元素,请尝试以下操作:
现在,如果你有四个div:
<div class="pro-tease irrelevant">...</div>
<div class="even irrelevant">...</div>
<div class="not specified">...</div>
<div class="pro-tease even">...</div>
将选择1、2、4,因为它们都包含
pro-tease
或even
。在至此,您可能已经注意到
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')]
相关问题 更多 >
编程相关推荐