当前位置: 首页 > news >正文

Python—selenium —xpath定位方法详解

前言

今天我们来聊聊selenium-- xpath定位方法,我们都知道selenium有八大定位策略分别是id、name、class name、tag name、link text、partial link text、xpath、css 。那么我们今天呢主要来讲讲八大定位策略中的xpath的定位方法,废话不多说我们直接开始吧。下面主要介绍一下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 EC from selenium.webdriver.common.by import By driver = 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")

最后作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些软件测试的学习资料和我花了3个月整理的软件测试自学全栈,这些资料希望能给你前进的路上带来帮助。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

http://www.cnnetsun.cn/news/186736.html

相关文章:

  • 8分钟掌握多平台直播:OBS同步推流完整指南
  • Display Driver Uninstaller终极教程:5分钟彻底解决显卡驱动问题
  • Zotero文献标签消失?三步找回你的彩色标记
  • 如何快速在线查看SQLite数据库:这款免费工具让数据管理变得超简单
  • 番茄小说离线下载终极指南:一键保存全网热门小说
  • Windows驱动清理终极指南:5个技巧彻底解决系统冗余问题
  • Windows XP图标主题终极指南:让现代系统重获经典魅力
  • Proteus 8 Professional下载安装过程中JAVA依赖说明
  • Wallpaper Engine创意工坊终极下载指南:免费获取海量动态壁纸的完整教程
  • es客户端工具初体验:简单高效的可视化操作
  • Wallpaper Engine下载器终极指南:三步轻松获取创意工坊壁纸
  • Scroll Reverser:重新定义Mac滚动逻辑的智能解决方案
  • 【Android FrameWork】第四十天:SamplingProfilerService
  • 3招解锁虚拟显示器:parsec-vdd实战进阶指南
  • ParsecVDisplay实战指南:如何用虚拟显示器提升工作效率
  • Windows驱动管理终极指南:DriverStore Explorer释放系统空间
  • ParsecVDisplay虚拟显示器终极指南:打造4K 240Hz超流畅显示环境
  • 视频编辑神器LosslessCut常见问题全攻略:从入门到精通的无损剪辑指南
  • Wallpaper Engine下载工具终极指南:一键获取创意工坊壁纸的完整教程
  • Driver Store Explorer实战指南:Windows驱动管理的终极解决方案
  • 如何查看 Ubuntu 服务器到底什么时候重启的?
  • Wallpaper Engine终极下载指南:快速获取创意工坊壁纸的完整教程
  • 显卡驱动深度清理实战指南:Display Driver Uninstaller专业应用解析
  • 显卡驱动清理终极指南:DDU工具彻底解决驱动残留问题
  • AUTOSAR网络唤醒机制:NM报文配置核心要点
  • 全面讲解工业控制领域中Vivado软件的规范卸载流程
  • Python命令行工具Fire
  • Windows驱动存储清理指南:5步释放宝贵磁盘空间
  • 终极QQ空间数据备份方案:GetQzonehistory完整操作指南
  • Display Driver Uninstaller终极指南:彻底清理显卡驱动残留问题