前言

今天我们来聊聊selenium -- xpath定位方法,我们都知道selenium有八大定位策略分别是id、name、class name、tag name、link text、partial link text、xpath、css 。那么我们今天呢主要来讲讲八大定位策略中的xpath的定位方法,废话不多说我们直接开始吧。

一、xpath基本定位用法

1.1 使用id定位 -- driver.find_element_by_xpath('//input[@id="kw"]')

​1.2 使用class定位 -- driver.find_element_by_xpath('//input[@class="s_ipt"]')

1.3 当然 通过常用的8种方式结合xpath均可以定位(name、tag_name、link_text、partial_link_text)以上只列举了2种常用方式哦。

二、xpath相对路径/绝对路径定位

2.1 相对定位 -- 以// 开头 如://form//input[@name="phone"]

​2.2 绝对定位 -- 以/ 开头,但是要从根目录开始,比较繁琐,一般不建议使用 如:/html/body/div/a

三、xpath文本、模糊、逻辑定位

3.1【文本定位】使用text()元素的text内容 如://button[text()="登录"]

3.2 【模糊定位】使用contains() 包含函数 如://button[contains(text(),"登录")]、//button[contains(@class,"btn")] 除了contains不是=等于 多用于display属性

​3.3 【模糊定位】使用starts-with -- 匹配以xx开头的属性值;ends-with -- 匹配以xx结尾的属性值 如://button[starts-with(@class,"btn")]、//input[ends-with(@class,"-special")]

3.4 使用逻辑运算符 -- and、or;如://input[@name="phone" and @datatype="m"]

四、xpath轴定位

4.1 轴运算

ancestor:祖先节点 包括父   

parent:父节点   

preceding-sibling:当前元素节点标签之前的所有兄弟节点   

preceding:当前元素节点标签之前的所有节点

following-sibling:当前元素节点标签之后的所有兄弟节点

following:当前元素节点标签之后的所有节点

使用语法: 轴名称 :: 节点名称

使用较多场景:页面显示为一个表格样式的数据列

如:

​注意:

#定位 找到元素 -- 做到唯一识别
#优先使用id
#舍弃:有下标的出现、有绝对定位的出现、id动态变化时舍弃
from selenium import webdriver
import time
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import Bydriver = webdriver.Chrome()driver.get("https://www.baidu.com/")driver.maximize_window()time.sleep(3)# 定位百度搜索框driver.find_element_by_id("kw").send_keys("python")time.sleep(3)driver.find_element_by_id("su").click()time.sleep(5)# 找到这个元素ele = driver.find_element_by_xpath('//a[text()="_百度百科"]')# 拖动元素到可见区域--scrollIntoView() 拉到顶部显示,有可能会被导航栏遮挡,定位不到而报错;scrollIntoView(false)可视区域底部对齐driver.execute_script("arguments[0].scrollIntoView(false);", ele)time.sleep(5)driver.quit()

定位后的常见操作

get(url) 打开网页

send_keys(str) 输入

click() 点击

clear() 清空

text 获取标签文本内容

get_attribute('属性') 获取元素属性值

close() 关闭当前标签页

quit() 关闭浏览器,释放进程

FAQ

1、脚本结束如果没有调用quit()方法,chromedriver进程会在后台继续运行。大概占用4M空间。如果创建多了不关,会导致电脑卡。

__import__('os').system("taskkill /f /t /im chromedriver.exe")

好了今天的分享就到这里了,喜欢的可以点赞评论加关注,关注我每天给你们带来不同的惊喜。

python—selenium —xpath定位方法详解相关推荐

  1. python括号详解,Python如何省略括号方法详解

    Python如何省略括号方法详解 在Python语言中最常见的括号有三种,分别是:小括号().中括号[].花括号{}:其作用也不相同,分别用来代表不同的Python基本内置数据类型. 1.Python ...

  2. python selenium定位元素方法_[原创] python selenium 元素定位方法封装

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 写好了公用的调用类,接下来就按照pageobject的设计模式写一下基本的元素定位方法,此处我们需要对python的方法传参有所了解,没有自信的同学可以返 ...

  3. xpath定位中详解id 、starts-with、contains、text()和last() 的

    1.XPATH使用方法 使用XPATH有如下几种方法定位元素(相比CSS选择器,方法稍微多一点): a.通过绝对路径定位元素(不推荐!) WebElement ele = driver.findEle ...

  4. python操作yaml的方法详解

    这篇文章主要为大家介绍了python操作yaml的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助 一.参考链接 https://pyyaml.org/wiki/PyYAM ...

  5. python中矩阵的表示方法_关于Python表示矩阵的方法详解

    这篇文章主要介绍了Python表示矩阵的方法,结合具体实例形式分析了Python表示矩阵的方法与相关操作注意事项,需要的朋友可以参考下 本文实例讲述了Python表示矩阵的方法.分享给大家供大家参考, ...

  6. AUTOSAR从入门到精通100讲(十五)-AURIX TC3xx MCAL中Link文件解析以及代码变量定位方法详解

    一 TC3xx系列MCAL中TASKING Link文件解析以及代码变量定位方法 1 TASKING Link文件解析 1.1 DSRAM中的数据存放: 在AURIX™ 2G中(以TC387为例),每 ...

  7. Python Selenium.WebDriver 最强详解页面加载策略

    Python Selenium.WebDriver 网页加载策略『详细』 文章目录 Python Selenium.WebDriver 网页加载策略『详细』 一.网页加载策略

  8. python使用方法-python中dict使用方法详解

    dict的特性 dict是python中的一个可变的数据类型,用{}表示,dict的key必须是不可变的数据类型,而value的数据类型可以任意. 格式:{key:value,key:value,ke ...

  9. Python中的魔术方法详解

    介绍 在Python中,所有以"__"双下划线包起来的方法,都统称为"Magic Method",中文称『魔术方法』,例如类的初始化方法 __init__ ,P ...

最新文章

  1. 福师2021计算机应用基础,2021福师《计算机应用基础》在线作业二【满分答案】...
  2. 【Python】Radiobutton组件 LabelFrame组件 Entry组件
  3. 洛谷 P4706 取石子 解题报告
  4. smarty中的内建函数(二)if、section
  5. 构造函数实现窗体间传值
  6. VTK:PolyData之PointSource
  7. 怎么说呢。留个纪念,关于字符串的重载
  8. 【终极方法】Syntax error on tokens, delete these tokens
  9. SpringBoot:如何处理SprintBoot提示Whitelabel Error Page以及了解原因?
  10. vs 2017 无法安装任何 nuget package,提示“库没有注册。。。”
  11. 【华为云技术分享】ArcFace简介
  12. 完全弄懂如何用pycharm安装pyqt5及其相关配置
  13. javascript document cookie
  14. 如何提高VS2010的性能,VS2010不再…
  15. Mac隐藏技巧:右键点按,在访达中玩出点新花样
  16. 蛋花花分享8个能提升Web前端开发技能的技巧
  17. warning:discards qualifiers from pointer target type解决办法
  18. GlusterFS 之 POSIX ACLs
  19. STM32 CANbootloader 升级功能开发(3)逻辑功能开发
  20. Cisco服务器http显示内容,IOS HTTP服务器的AAA控制

热门文章

  1. 微信小程序发放红包+领取红包(PHP)
  2. 服装市场如何利用互联网来改变当下的局限?
  3. 单点登录之CAS原理和实现(转载)
  4. 几行代码爬取某东商品评论并写入数据库做成词云
  5. 《精灵与萤火意志》的关卡设计:用相对线性的关卡打造轻度的探索体验
  6. ios13与android 10流畅度,iPhone6S分别运行iOS13与iOS10是什么体验 结果很出乎意料
  7. python小工具脚本_python实现倒计时小工具
  8. 【愚公系列】2021年11月 攻防世界-进阶题-MISC-041(Become_a_Rockstar)
  9. uipath读取wps文件
  10. matlab画图形的包络图,求大神指点绘制空间内散点图的包络面,,,散点程序如下...