前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python学习之selenium的xpath轴的用法,附案例

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

作者头像
吾爱乐享
发布2019-12-30 17:18:28
1.1K0
发布2019-12-30 17:18:28
举报
文章被收录于专栏:吾爱乐享

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()

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-09-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档