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模糊匹配相关推荐

  1. python自动华 (十四)

    Python自动化 [第十四篇]:HTML介绍 本节内容: Html 概述 HTML文档 常用标签 2. CSS 概述 CSS选择器 CSS常用属性 1.HTML 1.1概述 HTML是英文Hyper ...

  2. python接口自动化测试二十四:上传多个附件,参数化

    python接口自动化测试二十四:上传多个附件,参数化 # 添加多个附件参数化files = [("1.png", "1.png") ("2.png& ...

  3. SVM 支持向量机算法(Support Vector Machine )【Python机器学习系列(十四)】

    SVM 支持向量机算法(Support Vector Machine )[Python机器学习系列(十四)] 文章目录 1.SVM简介 2. SVM 逻辑推导 2.1 Part1 化简限制条件 2.2 ...

  4. Python界面编程第十四课:Pyside2 (Qt For Python)使用Calendar创建日历

    QCalendar 是什么? QCalendar对象使用特定系统规则将年.月和日映射到特定的日期(最终由它的Julian天数标识). 默认的QCalendar() 是一个扩展的Gregorian日历, ...

  5. Appium+python自动化(二十四)- 白素贞千年等一回许仙 - 元素等待(超详解)

    简介 许仙小时候最喜欢吃又甜又软的汤圆了,一次一颗汤圆落入西湖,被一条小白蛇衔走了.十几年后,一位身着白衣.有青衣丫鬟相伴的美丽女子与许仙相识了,她叫白娘子.白娘子聪明又善良,两个人很快走到了一起.靠 ...

  6. python自动化开发-[第二十四天]-高性能相关与初识scrapy

    今日内容概要 1.高性能相关 2.scrapy初识 上节回顾: 1. Http协议Http协议:GET / http1.1/r/n...../r/r/r/na=1TCP协议:sendall(" ...

  7. 利用python进行数据分析——第十四章_数据分析案例

    文章目录 本章中的数据文件可从下面的github仓库中下载 利用python进行数据分析(第二版) 一.从Bitli获取 1.USA.gov数据 1.1纯python时区计数 1.2使用pandas进 ...

  8. python自动化开发-[第十四天]-javascript(续)

    今日概要: 1.数据类型 2.函数function 3.BOM 4.DOM 1.运算符 算术运算符:+ - * / % ++ -- 比较运算符:> >= < <= != == ...

  9. python做流程图_少儿Python编程_第十四讲:开发游戏

    无论哪一种编程语言,实现图形界面程序的方法都大同小异.本讲介绍用Python开发小游戏的方法,从中学习使用Python编写图形界面的程序,图形图像的基础知识,以及在图形界面程序中与用户交互.最后部分还 ...

最新文章

  1. python语言可以在哪系统操作-python能检测到它运行的是哪个操作系统?
  2. Leetcode 190. 颠倒二进制位 解题思路及C++实现
  3. 第三方工具Jdom解析XML
  4. 如何补充策略与模型在风控中的滞后性
  5. maven项目引入sqljdbc4 找不到包的完美 解决方案。
  6. SSM项目连接远程Linux服务器的mysql 启动tomcat卡在了 Initializing Spring root WebApplicationContext...
  7. DataGame: IKCEST 2019
  8. 工程测量附合导线简易平差计算(附软件下载)
  9. 软件测试主要种类大全
  10. crypto密码学知识大纲
  11. onenote 无法正常使用的解决办法
  12. drupal 7 ajax,【漏洞分析】CVE-2018-7600 Drupal 7.x 版本代码执行
  13. 安装sql 无法重启计算机,win10系统安装sQL server 2008显示重新启动计算机失败的步骤介绍...
  14. 《互联网信贷风险与大数据》读书笔记(四)
  15. C#:DataTable 操作
  16. scratch编程打字机
  17. 神舟gx8cp5s1uefi安装win10和ubuntu18.04双系统记录
  18. asp mysql 不用 dsn,另类: asp不用DSN访问数据库
  19. 函数最值题目及答案_高一函数题目及答案解析
  20. 程序员都有一张早衰的脸?但入职前,谁还不是个吴彦祖呢?

热门文章

  1. 2022年,PyTorch在AI顶会的占比已经上80%了
  2. 商汤涨涨涨涨:上市4日股价累涨130%,市值一度3000亿港元
  3. 惊了,AI已经学会刷LeetCode了!
  4. 重读经典:完全解析特征学习大杀器ResNet
  5. Java程序流程控制(顺序结构、分支结构、循环结构、if-else、switch-case、for、while、do-while、break、continue、return)
  6. Django模板、配置文件、静态文件及案例实现(创建模板、设置模板查找路径、模板接收视图传入的数据、模板处理数据、BASE_DIR、DEBUG、本地语言与时区、App应用配置)
  7. 个人理解卷积 池化 的用处
  8. Python报错TypeError: Tuple or struct_time argument required
  9. 什么是图神经网络 (GNN)?
  10. 一文看懂MYCAT数据库服务器!