吾爱乐享
个人学习博客

python学习之selenium的xpath轴的用法,附案例

xpath 轴

在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点)。

轴是相对于当前节点的节点集

ancestor:选取当前节点的所有先辈(包括父,祖父,祖祖父等)

ancestor-or-self:选取当前节点的所有先辈以及当前节点本身

attribute:选取当前节点的所有属性

child:选取当前节点的所有子元素

descendant:选取当前节点的所有后代元素(包括子,孙等)

descendant-or-self:选取当前节点的所有后代元素及当前节点本身

following:选择文本中当前节点结束标签后的所有节点

namespace:选取当前节点的所有命名空间节点

parent:选取当前节点的父节点

preceding:选取文档中当前节点的开始标签之前的所有节点

preceding-sibling:选取当前节点之前的所有同级节点

self:选取当前节点

用法:

轴名称::节点测试[谓语]

child::div:所有属于当前节点的子元素的div节点

attribute::id:选取当前节点的id属性

child::*:选取当前节点的所有子元素

attribute::*:选取当前节点的所有属性

child::text():选取当前节点的所有文本子节点

child::node():选取当前节点的所有子节点

descendant::div:选取当前节点的所有div的后代元素

ancestor::div:选取当前节点的所有div 的先辈元素

ancestor-or-self::div:选取当前节点的所有div的先辈元素以及当前节点(如果此节点为div节点的话)

child::*/child::div:选取当前节点的所有div孙节点

xpath 轴

在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点)。

轴是相对于当前节点的节点集

ancestor:选取当前节点的所有先辈(包括父,祖父,祖祖父等)

ancestor-or-self:选取当前节点的所有先辈以及当前节点本身

attribute:选取当前节点的所有属性

child:选取当前节点的所有子元素

descendant:选取当前节点的所有后代元素(包括子,孙等)

descendant-or-self:选取当前节点的所有后代元素及当前节点本身

following:选择文本中当前节点结束标签后的所有节点

namespace:选取当前节点的所有命名空间节点

parent:选取当前节点的父节点

preceding:选取文档中当前节点的开始标签之前的所有节点

preceding-sibling:选取当前节点之前的所有同级节点

self:选取当前节点

用法:

轴名称::节点测试[谓语]

child::div:所有属于当前节点的子元素的div节点

attribute::id:选取当前节点的id属性

child::*:选取当前节点的所有子元素

attribute::*:选取当前节点的所有属性

child::text():选取当前节点的所有文本子节点

child::node():选取当前节点的所有子节点

descendant::div:选取当前节点的所有div的后代元素

ancestor::div:选取当前节点的所有div 的先辈元素

ancestor-or-self::div:选取当前节点的所有div的先辈元素以及当前节点(如果此节点为div节点的话)

child::*/child::div:选取当前节点的所有div孙节点

# -*- coding: UTF-8 -*-

#@Time      :2019/09/07 15:23

#@Author    :wuailexiang

#@Email     :3142223672@qq.com

#@File      :test.py

from selenium import webdriver

import time

browser = webdriver.Chrome()

browser.maximize_window()

browser.get(‘地址’)

browser.find_element_by_xpath(‘//div[@class=”login-main”]/p[1]/input’).send_keys(‘admin’)

browser.find_element_by_xpath(‘//div[@class=”login-main”]/p[2]/input’).send_keys(‘wafer123’)

browser.find_element_by_xpath(‘//div[@class=”login-main”]/p[3]/button’).click()

time.sleep(1)

”’

xpath 轴

在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点)。

轴是相对于当前节点的节点集

ancestor:选取当前节点的所有先辈(包括父,祖父,祖祖父等)

ancestor-or-self:选取当前节点的所有先辈以及当前节点本身

attribute:选取当前节点的所有属性

child:选取当前节点的所有子元素

descendant:选取当前节点的所有后代元素(包括子,孙等)

descendant-or-self:选取当前节点的所有后代元素及当前节点本身

following:选择文本中当前节点结束标签后的所有节点

namespace:选取当前节点的所有命名空间节点

parent:选取当前节点的父节点

preceding:选取文档中当前节点的开始标签之前的所有节点

preceding-sibling:选取当前节点之前的所有同级节点

self:选取当前节点

用法:

轴名称::节点测试[谓语]

child::div:所有属于当前节点的子元素的div节点

attribute::id:选取当前节点的id属性

child::*:选取当前节点的所有子元素

attribute::*:选取当前节点的所有属性

child::text():选取当前节点的所有文本子节点

child::node():选取当前节点的所有子节点

descendant::div:选取当前节点的所有div的后代元素

ancestor::div:选取当前节点的所有div 的先辈元素

ancestor-or-self::div:选取当前节点的所有div的先辈元素以及当前节点(如果此节点为div节点的话)

child::*/child::div:选取当前节点的所有div孙节点

”’

#使用ancestor-or-self选取当前节点的所有先辈及当前节点本身

browser.find_element_by_xpath(‘//span[@class=”ant-cascader-picker”]/ancestor-or-self::span/input’).click()

#使用ancestor,选取当前节点的所有父节点

browser.find_element_by_xpath(‘//ul[@class=”ant-cascader-menu”]/ancestor-or-self::div/ul[1]/li[1]’).click()

#使用attritube选取当前节点的所有属性

browser.find_element_by_xpath(‘//span[@class=”ant-cascader-picker”]/input/attribute::type/ancestor::span/input’).click()

#使用child选取当前节点的所有的子元素,

browser.find_element_by_xpath(‘//ul[@class=”ant-cascader-menu”][2]/child::li[1]’).click()

#使用descendant获取当前节点的所有后代元素

browser.find_element_by_xpath(‘//span[@class=”ant-cascader-picker”]/descendant::input’).click()

#使用descendant-or-self获取当前节点的所有后代元素及当前节点

browser.find_element_by_xpath(‘//ul[@class=”ant-cascader-menu”][3]/descendant-or-self::ul/li[1]’).click()

#following:选择文本中当前节点结束标签后的所有节点

browser.find_element_by_xpath(‘//span[@class=”dept-chose-label”]/following::span[@class=”ant-select-selection__rendered”]’).click()

time.sleep(1)

#使用parent:选取当前节点的父节点

browser.find_element_by_xpath(‘//li/parent::ul[@class=”ant-select-tree”]/li[2]/span[2]’).click()

# self:选取当前节点

browser.find_element_by_xpath(‘//span[@class=”ant-select-selection__rendered”]/self::span’).click()

time.sleep(1)

# preceding-sibling:选取当前节点之前的所有同级节点

browser.find_element_by_xpath(‘//span[@class=”ant-select-search__field__mirror”]/preceding-sibling::input’).send_keys(“西安”)

browser.find_element_by_xpath(‘//span[@class=”ant-select-selection__rendered”]/self::span’).click()

#使用preceding选取文档中当前节点的开始标签之前的所有节点

browser.find_element_by_xpath(‘//preceding::i[@class=”anticon anticon-plus-circle-o”]’).click()

5a73df03c2f743b5b35ad7ff54349925.png

赞(0) 打赏
未经允许不得转载:吾爱乐享 » python学习之selenium的xpath轴的用法,附案例

评论 抢沙发

评论前必须登录!

 

推荐免费资源共享,个人经验总结学习

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏