首页 > 其他分享 >xpath语法的使用(以selenium为例)

xpath语法的使用(以selenium为例)

时间:2023-04-02 17:13:18浏览次数:41  
标签:xpath 为例 selenium 节点 选择 single div choice class

"""
xpath定位
1. 路径选择
 / 表示根节点
 /html 表示选择根节点下的html节点
 /html/body/div 表示选择根节点下的html节点下面的body节点下面的div节点
 //div/p 选择所有div下的直接子节点p元素
 //div//p 选择所有div下的所有p元素
 //div/
 
2. 属性选择 [@属性名="属性值"]
 //*[@id="west"]  选择id为west的元素
 //div[@class="single_choice"]  选择class为single_choice的div元素
 注意:如果一个元素同时拥有class属性为 capital 和 huge_city
   css选择器中有其中一个就能找到  .capital
   但是xpath中需要完全相同才能找到  //div[@class="capital huge_city"]
   
 如果标签只有属性名没有属性值,如:<select class="multi_choice" multiple>
 //select[@multiple]
 
3. 包含字符串
 //*[contains(@style,"color")] 选择style属性值包含color的页面节点
 //*[starts-with(@style,"color")] 选择style属性值以color开头的页面节点
 //*[ends-with(@style,"color")] 选择style属性值以color结尾的页面节点(ends-with在xpath2中才支持)
 
4. 按次序选择
 //p[2] 选择p类型的第二个子元素(不是第二个子元素,并且是p类型!!)
 //div/p[2] 选择父元素为div的p类型的第2个子元素
 //div/*[2] 选择父类型为div的第二个子元素(可以是任意类型)
 //p[last()] 选择p类型的最后一个子元素
 //p[last()-1] 选择p类型的倒数第二个子元素
 
5. 范围选择
 //option[position() <= 2] 或 //option[position() > 3] 选取option类型的前两个子元素
 //option[position() >= last()-2] 选取option类型的后三个元素
 
6. 组选择
 //option | //h4 选择所有的option节点和h4节点
 //*[@class="single_choice"] | //*[@class="multi_choice"] 选择所有class为single_choice和class为multi_choice的节点

7. 选择父节点
 //*[@id="china"]/.. 选择id为china的节点的父节点
 
8. 兄弟节点
 //*[@class="single_choice"]/following-sibling::* 选择class为single_choice的所有后续兄弟节点
 //*[@class="single_choice"]/following-sibling::select 选择class为single_choice的所有后续select兄弟节点
 //*[@class="single_choice"]/preceding-sibling::* 选择class为single_choice的所有前面的兄弟节点
"""

wd.find_element(By.XPATH, "/html/body/div")

 

标签:xpath,为例,selenium,节点,选择,single,div,choice,class
From: https://www.cnblogs.com/mlllily/p/17280790.html

相关文章

  • selenium简单使用
    fromseleniumimportwebdriverfromselenium.webdriver.chrome.serviceimportServicefromselenium.webdriver.common.byimportByfromselenium.webdriver.support.uiimportSelectfromselenium.webdriver.common.action_chainsimportActionChainsimporttime......
  • selenium使用css selector和xpath的比较
    selenium提供的定位方式(常用)推荐的定位方式的优先级   优先级最高:ID   优先级其次:name   优先级再次:CSSselector   优先级再次:Xpath针对cssselector和xpath的优先级做一个简单的说明在项目中我们可能用的最多的是css或者xpath,那么针对这两种,我们优先选择css,原......
  • linux操作系统实验四-以time/gettimeofday系统调用为例分析ARM64 Linux 5.4.34
    一、搭配环境(1)安装编译工具sudoapt-getinstallgcc-aarch64-linux-gnusudoapt-getinstalllibncurses5-dev build-essentialgitbisonflexlibssl-dev(2)制作根文件系统wget https://busybox.net/downloads/busybox-1.33.1.tar.bz2tar-xjfbusybox-1.33.1.tar.bz2......
  • 单例的各种方式实现,本写法以类A为例,泛型可以使用T
    单例的使用如下:#region单例的各种方式实现,本写法以类A为例,泛型可以使用TpublicclassA{#region单线程----常规,多线程不安全/////<summary>/////私有构造函数,防止初始化/////</summary>//privateA()//{......
  • selenium之关闭窗口,指定窗口大小,前进,后退,刷新等操作
    关闭窗口1、仅关闭当前窗口(Tab页),其他窗口不退出关闭用户当前正在使用的Web浏览器窗口,即WebDriver当前正在访问的窗口。.close()方法既不需要任何参数,也无任何返回值。driver.close()相当于浏览器中每个Tab页中的叉叉。2、关闭所有的浏览器窗口(WebDriver初始化的整个浏览器进程)同于......
  • python selenium 判断元素是否存在,实现:找到元素,执行对应的代码;找不到元素,继续执行其他
    selenium因为找不到元素会抛出异常,导致执行结束可以考虑使用driver.find_elements(),找不到元素时就会返回空列表,使用if-else语句,判断列表是否为空,非空,则正常找到元素,进行后续代码执行;空,则直接跳过,执行其他代码iflen(driver.find_elements())!=0#判断列表的长度是否为0......
  • 实战SQL优化(以MySQL深分页为例)
    1准备表结构CREATETABLE`student`(`id`intNOTNULLAUTO_INCREMENT,`user_no`varchar(50)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciNULLDEFAULTNULL,`user_name`varchar(50)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciNULLDEFAULTNULL......
  • 教育-selenium
    1.SeleniumSelenium是一个综合性项目,支持多种编程语言三大组件:IDE:浏览器插件,录制用例WebDriver:自动化用例执行(Python、Java、Ruby、C#)Grid:从单机变为分布式......
  • selenium指定谷歌浏览器地址和驱动地址
    在scrapy中引入seleniumutils.pyfromseleniumimportwebdriver#创建谷歌浏览器对象,用selenium控制浏览器访问urldefcreate_chrome_driver(*,headless=False):......
  • Selenium鼠标事件
    前言:执行自动化测试过程中遇到鼠标的操作,例如:左键单击、左键双击、右键单击、鼠标悬停、鼠标拖动等等操作,如何模拟鼠标的操作?1、导入ActionChains包想使用selenium中的鼠......