📅  最后修改于: 2023-12-03 15:21:19.355000             🧑  作者: Mango
Xpath和CSS选择器是两种常用于网页自动化测试的选择器。两者都可以用于定位HTML元素,但是在使用方法、语法和适用范围上都有所不同。
Xpath是一种基于XML的查询语言,可以用于定位HTML元素和XML元素。Xpath的最大优点是具有非常强大的定位能力,可以通过路径、属性、关系等多种方式定位元素,可以解决大部分的选择需求。
使用Xpath时需要表达式和函数等语法,下面是一些常用的Xpath语法:
//
: 代表选择所有的节点,可以选定同一文档中多个父节点的所有子节点,常用于选择符合条件的所有节点。/
: 代表选择直接子节点,用于选择一级节点。[@]
: 用于选取元素,可以通过@属性值来选择元素。text()
: 选取当前节点的文本内容或后代节点的文本内容。//tag[contains(@attribute,"value")]
: 通过元素属性包含某个值来选择元素,其中tag是标签名,attribute是属性名,value是属性值。Xpath可以用于选择各种类型的HTML元素,包括跨越多个层级的元素。
以下示例代码是使用Xpath选择器定位百度搜索框:
# 输入搜索关键字"XPath"
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.baidu.com/')
search_box = browser.find_element_by_xpath('//*[@id="kw"]')
search_box.send_keys('XPath')
CSS选择器是一种基于CSS的选择器语言,可以用于定位HTML元素。CSS选择器可以灵活地使用CSS样式规则来定位元素,是一种很好的选择器。
CSS选择器的语法十分简单,主要是通过标签、类、ID等属性来选择元素,下面是一些常用的CSS选择器语法:
#id
: 通过ID选择元素。.class
: 通过类名选择元素。tag
: 通过标签名选择元素。tag.class
: 通过标签名和类名选择元素。CSS选择器主要用于选择HTML文档中的元素,可以用于选择各种类型的HTML元素。
以下示例代码是使用CSS选择器定位百度搜索框:
# 输入搜索关键字"CSS 选择器"
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.baidu.com/')
search_box = browser.find_element_by_css_selector('#kw')
search_box.send_keys('CSS 选择器')
Xpath和CSS选择器都是非常实用的定位策略,具有不同的特点和适用范围。在实际使用中,需要根据实际情况选择合适的选择器。