📜  xpath和css选择器的区别? - CSS (1)

📅  最后修改于: 2023-12-03 15:21:19.355000             🧑  作者: Mango

Xpath和CSS选择器的区别

Xpath和CSS选择器是两种常用于网页自动化测试的选择器。两者都可以用于定位HTML元素,但是在使用方法、语法和适用范围上都有所不同。

Xpath

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选择器是一种基于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选择器都是非常实用的定位策略,具有不同的特点和适用范围。在实际使用中,需要根据实际情况选择合适的选择器。