公司手机网站设计,如何做网站登录界面,鲜花网站建设规划,北京城乡建设官方网站#x1f9ed; XPath 语法简介#xff08;Web 自动化核心定位手段#xff09;一、XPath 是什么#xff1f;XPath#xff08;XML Path Language#xff09;是用于在 XML/HTML 文档中定位节点的语言#xff0c;由 W3C 标准定义。浏览器支持的是 XPath 1.0。应用场景广泛 XPath 语法简介Web 自动化核心定位手段一、XPath 是什么XPathXML Path Language是用于在 XML/HTML 文档中定位节点的语言由 W3C 标准定义。浏览器支持的是 XPath 1.0。应用场景广泛用于 Selenium、Scrapy 爬虫、Appium 移动自动化 等。
二、XPath 与 CSS 对比特性CSS SelectorXPath向上选父节点❌ 不支持✅ 支持 /..向前选兄弟节点❌ 不支持✅ preceding-sibling::根据属性部分匹配✅ ^ * 等✅ starts-with() contains()结构匹配表达力强中等非常强大
三、XPath 基本语法1️⃣ 绝对路径从根节点开始
/html/body/div等同于 CSShtml body div2️⃣ 相对路径常用
//div表示从任意位置开始选择所有的 div 元素。// 类似 CSS 的后代选择器空格。3️⃣ 子元素选择
//div/p # 直接子元素
//div//p # 任意后代元素4️⃣ 通配符 *
//div/* # div下所有直接子节点
四、按属性选择元素基础语法
//*[属性名属性值] # 注意 符号和引号示例
//*[idwest]
//*[classcapital huge-city]⚠️ class 为多个值时必须匹配完整。存在属性不要求值
//*[multiple] # 选择有 multiple 属性的所有元素属性部分匹配
//*[contains(style, color)] # 包含 color
//*[starts-with(style, color)] # 以 color 开头⚠️ ends-with() 是 XPath 2.0不被浏览器支持。
五、按位置/顺序选择第 N 个某类元素
//p[2] # 所有 p 中的第 2 个
//div/p[2] # div 下的 p 中第 2 个第 N 个任意子元素
//div/*[2]倒数第几个
//p[last()] # 最后一个 p
//p[last()-1] # 倒数第二个
//div/p[last()-2] # div 中 p 的倒数第三个范围选择
//option[position()2]
//*[classmulti_choice]/*[position()last()-2]
六、组合选择、父节点与兄弟节点组选择或运算
//option | //h4
//*[classa] | //*[classb]父节点选择
//*[idchina]/..可以用于先选子再回到父节点。兄弟节点选择
//*[classsingle_choice]/following-sibling::* # 后续兄弟
//*[classsingle_choice]/preceding-sibling::*[1] # 前一兄弟CSS 仅支持后续兄弟~不支持前兄弟选择。
七、Selenium 中使用 XPath 的注意点1️⃣ 基本用法
driver.find_elements(By.XPATH, //div)2️⃣ 在 WebElement 内部查找子节点时要加 .
china driver.find_element(By.ID, china)
elements china.find_elements(By.XPATH, .//p) # 必须加点如果不加 .//会从整个 DOM 根节点开始查找而不是从当前元素。
✅ 小结XPath 常用关键字/函数速查表表达式含义/绝对路径或直接子节点//相对路径或任意后代节点*通配符匹配任意标签[attrvalue]根据属性精确匹配contains(attr, xxx)属性包含子串starts-with(attr, x)属性以字符串开头position()子元素的位次last()最后一个子元素位置/..父节点preceding-sibling::*前兄弟节点following-sibling::*后兄弟节点组选择