在Selenium 4中,XPath表达式用于定位网页上的HTML元素。XPath基于XML路径语言,但在HTML中同样适用。以下是一些基本的XPath表达式及其说明:
-
绝对路径:从文档的根元素开始查找,通常是
/html
,然后向下遍历结构。- 示例:
/html/body/div[1]
会找到<body>
下的第一个<div>
元素。
- 示例:
-
相对路径:相对于当前节点选择元素,使用
.
表示当前节点,..
表示父节点。- 示例:
./following-sibling::div[1]
会找到当前元素的下一个同级的<div>
元素。
- 示例:
-
通配符选择器:
*
选择所有元素。- 示例:
//*[@class='container']
会选择所有class
属性为container
的元素。
-
属性选择器:通过元素的属性来定位。
- 示例:
//input[@type='text']
会选择所有<input>
元素,其type
属性为text
。
- 示例:
-
文本内容选择器:根据元素内的文本内容来定位。
- 示例:
//a[text()='Click Here']
会选择文本内容为Click Here
的<a>
链接。
- 示例:
-
索引选择器:通过元素在同级元素中的位置来定位。
- 示例:
//li[3]
会选择第三个<li>
元素。
- 示例:
-
类选择器:通过类名来定位元素。
- 示例:
//div[contains(@class, 'myClass')]
会选择class
属性包含myClass
的<div>
元素。
- 示例:
-
组合选择器:可以使用逻辑运算符
and
和or
组合多个条件。- 示例:
//input[@type='text' and @name='username']
会选择type
为text
且name
为username
的<input>
元素。
- 示例:
-
命名空间选择器:在XML文档中,如果元素有命名空间,需要处理这些命名空间。在HTML中不常见,但在XML文档中很重要。
Selenium 4中,你可以使用find_element_by_xpath
或更简洁的find_element
方法来定位单个元素,以及find_elements_by_xpath
或find_elements
来定位所有匹配的元素。在使用XPath时,确保选择器是唯一的,以避免定位到错误的元素。如果可能,最好使用WebDriverWait
配合expected_conditions
来等待元素出现,以确保页面已经加载完成。