python selenium xpath_python+selenium十四:xpath和contains模糊匹配
xpath可以以标签定位,也可以@任意属性:
如:以input标签定位:driver.find_element_by_xpath("//input[@id='kw']")
如:@type属性:driver.find_elements_by_xpath("//input[@type='text']")
一、xpath定位
1、常规属性
1.通过id定位
driver.find_element_by_xpath("//*[@id='kw']").send_keys("hao")
2.通过tag(标签)定位
*号匹配任何标签:driver.find_element_by_xpath("//*[@id='kw']")
也可以指定标签名称:driver.find_element_by_xpath("//input[@id='kw']")
3.通过class定位
driver.find_element_by_xpath("//input[@class='s_ipt']").send_keys("hao")
4.通过name定位
driver.find_element_by_xpath("//input[@name='wd']").send_keys("hao")
2、其他属性
1.其它属性
driver.find_element_by_xpath("//input[@autocomplete='off']").send_keys("hao")
2.多个属性组合(逻辑运算)
driver.find_elements_by_xpath("//input[@type='text' and @name='wd']")
3.绝对路径:/html/body/xxx/xx[@id=‘kw’]
3、层级关系
1.相对路径:层级关系
driver.find_element_by_xpath("//form[@id='form']/span/input")
如:
/代表绝对路径
//代表相对路径
2.索引:如定位搜索选项框
driver.find_element_by_xpath("//*[@id='nr']/option[3]")
3.同一父级多个子元素
如果同一父级下,有多个相同的子元素,下标从1开始:.//*[@id='u1']/a[2]
也可以这样:.//*[@id='u1']/a[@class="mnav"][1]
4、模糊匹配
1.contains模糊匹配text:contains
如,通过模糊匹配text属性,找到百度首页的“糯米”网站超链接
driver.find_element_by_xpath("//a[contains(text(),'糯')]").click()
2.模糊匹配某个属性:contains
xpath("//input[contains(@id,‘xx')]")
driver.find_element_by_xpath("//input[contains(@class,'s_ip')]").send_keys("hao")
3.模糊匹配以xx开头:starts-with
xpath("//input[starts-with(@id,‘xx') ]")
driver.find_element_by_xpath("//input[starts-with(@class,'s_ip')]").send_keys("hao")
5、文本属性
对于这种文本属性,语法:.//*[text()=‘文本内容’]
除了这个文本属性匹配是.//*[text()=‘文本’]这种格式(无@)
其它的属性,如id,name,class等都是.//*[@id=‘xxx’] .//*[@name=‘xxx’]这种格式
二、浏览器调试xpath
1.Firefox调试:无firePath的情况下,控制台下输入$x(xpath定位),回车
2.Chrome调试:Console下输入$x(xpath定位),回车
三、table表格定位
1、定位表格
Table表格固定格式:.//*[@id=‘表格id’]/tbody/tr[行数]/td[列数]/a
.//*[@id='bugList']/tbody/tr[6]/td[4]/a
2、参数化行和列
x = 6
y = 4
table = f".//*[@id='bugList']/tbody/tr[{x}]/td[{y}]/a"
driver.find_element_by_xpath(table).click()
3、根据表格标题定位后面的按钮
1.先通过bug的标题名称找到这一行
2.再找到这一行的父节点
3.通过父节点往下搜(编辑按钮都是固定位置)
text = "上传多个附件"
t = f'.//*[text()="{text}"]/../../td[@class="text-right"]/a[@title="编辑"]'
driver.find_element_by_xpath(t).click()
python selenium xpath_python+selenium十四:xpath和contains模糊匹配相关推荐
- python自动华 (十四)
Python自动化 [第十四篇]:HTML介绍 本节内容: Html 概述 HTML文档 常用标签 2. CSS 概述 CSS选择器 CSS常用属性 1.HTML 1.1概述 HTML是英文Hyper ...
- python接口自动化测试二十四:上传多个附件,参数化
python接口自动化测试二十四:上传多个附件,参数化 # 添加多个附件参数化files = [("1.png", "1.png") ("2.png& ...
- SVM 支持向量机算法(Support Vector Machine )【Python机器学习系列(十四)】
SVM 支持向量机算法(Support Vector Machine )[Python机器学习系列(十四)] 文章目录 1.SVM简介 2. SVM 逻辑推导 2.1 Part1 化简限制条件 2.2 ...
- Python界面编程第十四课:Pyside2 (Qt For Python)使用Calendar创建日历
QCalendar 是什么? QCalendar对象使用特定系统规则将年.月和日映射到特定的日期(最终由它的Julian天数标识). 默认的QCalendar() 是一个扩展的Gregorian日历, ...
- Appium+python自动化(二十四)- 白素贞千年等一回许仙 - 元素等待(超详解)
简介 许仙小时候最喜欢吃又甜又软的汤圆了,一次一颗汤圆落入西湖,被一条小白蛇衔走了.十几年后,一位身着白衣.有青衣丫鬟相伴的美丽女子与许仙相识了,她叫白娘子.白娘子聪明又善良,两个人很快走到了一起.靠 ...
- python自动化开发-[第二十四天]-高性能相关与初识scrapy
今日内容概要 1.高性能相关 2.scrapy初识 上节回顾: 1. Http协议Http协议:GET / http1.1/r/n...../r/r/r/na=1TCP协议:sendall(" ...
- 利用python进行数据分析——第十四章_数据分析案例
文章目录 本章中的数据文件可从下面的github仓库中下载 利用python进行数据分析(第二版) 一.从Bitli获取 1.USA.gov数据 1.1纯python时区计数 1.2使用pandas进 ...
- python自动化开发-[第十四天]-javascript(续)
今日概要: 1.数据类型 2.函数function 3.BOM 4.DOM 1.运算符 算术运算符:+ - * / % ++ -- 比较运算符:> >= < <= != == ...
- python做流程图_少儿Python编程_第十四讲:开发游戏
无论哪一种编程语言,实现图形界面程序的方法都大同小异.本讲介绍用Python开发小游戏的方法,从中学习使用Python编写图形界面的程序,图形图像的基础知识,以及在图形界面程序中与用户交互.最后部分还 ...
最新文章
- python语言可以在哪系统操作-python能检测到它运行的是哪个操作系统?
- Leetcode 190. 颠倒二进制位 解题思路及C++实现
- 第三方工具Jdom解析XML
- 如何补充策略与模型在风控中的滞后性
- maven项目引入sqljdbc4 找不到包的完美 解决方案。
- SSM项目连接远程Linux服务器的mysql 启动tomcat卡在了 Initializing Spring root WebApplicationContext...
- DataGame: IKCEST 2019
- 工程测量附合导线简易平差计算(附软件下载)
- 软件测试主要种类大全
- crypto密码学知识大纲
- onenote 无法正常使用的解决办法
- drupal 7 ajax,【漏洞分析】CVE-2018-7600 Drupal 7.x 版本代码执行
- 安装sql 无法重启计算机,win10系统安装sQL server 2008显示重新启动计算机失败的步骤介绍...
- 《互联网信贷风险与大数据》读书笔记(四)
- C#:DataTable 操作
- scratch编程打字机
- 神舟gx8cp5s1uefi安装win10和ubuntu18.04双系统记录
- asp mysql 不用 dsn,另类: asp不用DSN访问数据库
- 函数最值题目及答案_高一函数题目及答案解析
- 程序员都有一张早衰的脸?但入职前,谁还不是个吴彦祖呢?
热门文章
- 2022年,PyTorch在AI顶会的占比已经上80%了
- 商汤涨涨涨涨:上市4日股价累涨130%,市值一度3000亿港元
- 惊了,AI已经学会刷LeetCode了!
- 重读经典:完全解析特征学习大杀器ResNet
- Java程序流程控制(顺序结构、分支结构、循环结构、if-else、switch-case、for、while、do-while、break、continue、return)
- Django模板、配置文件、静态文件及案例实现(创建模板、设置模板查找路径、模板接收视图传入的数据、模板处理数据、BASE_DIR、DEBUG、本地语言与时区、App应用配置)
- 个人理解卷积 池化 的用处
- Python报错TypeError: Tuple or struct_time argument required
- 什么是图神经网络 (GNN)?
- 一文看懂MYCAT数据库服务器!