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