python xml xpath定位_selenium3 + python - xpath定位
什么是xpath呢?
官方介绍:XPath即为XML路径语言,它是一种用来确定XML1(标准通用标记语言3的子集)文档中某部分位置的语言。反正小编看这个介绍是云里雾里的,通俗一点讲就是通过元素的路径来查找到这个元素的,相当于通过定位一个对象的坐标,来找到这个对象。
一、xpath:属性定位
1、xptah也可以通过元素的id、name、class这些属性定位,如下图
2、定位方法如下:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
#用xpath通过id属性定位
driver.find_element_by_xpath("//*[@id='kw']").send_keys("selenium")
#用xpath通过name属性定位
driver.find_element_by_xpath("//*[@name='wd']").send_keys("selenium")
#用xpath通过class属性定位
driver.find_element_by_xpath("//*[@class='s_ipt']").send_keys("selenium")
二、xpath:其它属性
1.如果一个元素id、name、class属性都没有,这时候也可以通过其它属性定位到
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
#用xpath通过其他属性定位
driver.find_element_by_xpath("//*[@autocomplete='off']").send_keys("selenium")
三、xpath:标签
1.有时候同一个属性,同名的比较多,这时候可以通过标签筛选下,定位更准一点
2.如果不想制定标签名称,可以用*号表示任意标签
3.如果想制定具体某个标签,就可以直接写标签名称
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
#用xpath通过id属性定位
driver.find_element_by_xpath("//input[@id='kw']").send_keys("selenium")
#用xpath通过name属性定位
driver.find_element_by_xpath("//input[@name='wd']").send_keys("selenium")
#用xpath通过其他属性定位
driver.find_element_by_xpath("//input[@autocomplete='off']").send_keys("selenium")
四、xpath:层级
1.如果一个元素,它的属性不是很明显,无法直接定位到,这时候我们可以先找它老爸(父元素)
2.找到它老爸后,再找下个层级就能定位到了
3.如上图所示,要定位的是input这个标签,它的老爸的id=s_kw_wrap.
4.要是它老爸的属性也不是很明显,就找它爷爷id=form
5.于是就可以通过层级关系定位到
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
#通过定位它的父亲来定位input输入框
driver.find_element_by_xpath("//span[@id='s_kw_wrap']/input").send_keys("selenium")
#通过定位它的爷爷来定位input输入框
driver.find_element_by_xpath("//form[@id='form']/span/input").send_keys("selenium")
五、xpath:索引
1.如果一个元素它的兄弟元素跟它的标签一样,这时候无法通过层级定位到。因为都是一个父亲生的,多胞胎兄弟。
2.虽然双胞胎兄弟很难识别,但是出生是有先后的,于是可以通过它在家里的排行老几定位到。
3.如下图三胞胎兄弟
4.用xpath定位老大、老二和老三(这里索引是从1开始算起的,跟Python的索引不一样)
#用xpath定位老大
driver.find_element_by_xpath("//select[@id='nr']/option[1]").click()
#用xpath定位老二
driver.find_element_by_xpath("//select[@id='nr']/option[2]").click()
#用xpath定位老三
driver.find_element_by_xpath("//select[@id='nr']/option[3]").click()
六、xpath:逻辑运算
1.xpath还有一个比较强的功能,是可以多个属性逻辑运算的,可以支持与(and)、或(or)、非(not)
2.一般用的比较多的是and运算,同时满足两个属性
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
#xpath逻辑运算
driver.find_element_by_xpath("//*[@id='kw' and @autocomplete='off']")
七、xpath:模糊匹配
1.xpath还有一个非常强大的功能,模糊匹配
2.掌握了模糊匹配功能,基本上没有定位不到的
3.比如我要定位百度页面的超链接“hao123”,也可以通过by_link,也可以通过by_partial_link,模糊匹配定位到。当然xpath也可以有同样的功能,并且更为强大。
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
#xpath模糊匹配功能
driver.find_element_by_xpath("//*[contains(text(),'hao123')]").click()
#xpath模糊匹配某个属性
driver.find_element_by_xpath("//*[contains(@id,'kw')]").click()
#xpath模糊匹配以什么开头
driver.find_element_by_xpath("//*[starts-with(@id,'s_kw_')]").click()
#xpath模糊匹配以什么结尾
driver.find_element_by_xpath("//*[ends-with(@id,'kw_wrap')]").click()
#xpath支持正则表达式
driver.find_element_by_xpath("//*[matchs(text(),'hao123')]").click()
python xml xpath定位_selenium3 + python - xpath定位相关推荐
- python xml etree amp,用python etree打印XML的嵌套元素
我正在尝试构建一个脚本来读取XML文件. 这是我第一次分析一个XML,我使用的是带有xml.etree.elementtree的python.我要处理的文件部分如下: DESCRIPTION Rene ...
- python xml etree word_使用python格式化插入的元素xml.etree模块,包括新行
我正在将一个元素插入到一个大的xml文件中.我希望插入的元素位于顶部(所以我需要使用根.插入方法,并且不能仅附加到文件中).我也希望元素的格式与文件的其余部分相匹配.在 原始XML文件的格式为 ... ...
- python自动填日志_Selenium3+python自动化012+日志logging基本用法、高级用法
1.关键字: login 登录 log 日志 logging python日志模块 2.什么叫日志: 日志用来记录用户行为或者代码的执行过程 3.日志使用的地方: 1.排错的时候需要打印很多细节来帮助 ...
- Python XML解析器– ElementTree
Python XML parser provides us an easy way to read the XML file and extract useful data. Today we wil ...
- pythonxpath定位_selenium+python自动化-xpath定位语法
前言 右键查看目标元素的xpath地址,这样查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. 什么是xpath呢? ...
- python xpath定位不到_Xpath定位方法深入探讨及元素定位失败常见情况
一.Xpath定位方法深入探讨 (1)常用的Xpath定位方法及其特点 使用绝对路径定位元素. 例如: driver.findElement(By.xpath("/html/body/div ...
- python爬虫xpath教程_使用 Xpath 进行爬虫开发
使用 Xpath 进行爬虫开发 Xpath( XML Path Language, XML路径语言),是一种在 XML 数据中查找信息的语言,现在,我们也可以使用它在 HTML 中查找需要的信息. 既 ...
- Python网络爬虫开发实战使用XPath,xpath的多种用法
XPath,全称XML Path Language,即XML路径语言,它是一门在XML文档中查找信息的语言.它最初是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索. 很多人学习python, ...
- absolute如果找不到定位父元素那么会相对于谁进行定位_selenium+python面试题目总结,完整度80%,看看你会多少?...
很多小伙伴会经常私信来问我问题,有些来不及回答,实在抱歉! 本篇有点长!看到最后,给自己一个学习的地方! 1. WebDriver原理 webDriver是按照client/server模式设计,cl ...
最新文章
- 抢票 | AI未来说学术论坛第八期 深度学习特别专场
- OpenCASCADE:Mac OS X平台使用Xcode构建OCCT
- MySQL 之 information_schema
- 微人事项目实战的数据库脚本_EMP微前端实战之cocos2d线上项目
- 让游戏达到60帧真的重要吗?
- 史上最大源码泄露事件:iOS 关键源代码被匿名公布在 GitHub 上
- elasticsearch的javaAPI之index
- 17. 使用“swap技巧”除去多余得容量
- Linux Mint---开启桌面三维特效
- 11位大牛与您共建数智升级路径
- lzg_ad:GHOST带EWF功能的XPE操作系统
- “沉浸式”住宿体验——酒店的新瓶,民宿的老酒
- 如何下载B站视频,解决视频没有声音/音画分离问题(IDM+Potplayer)
- VMware教程:设置 CentOS 7 共享文件夹
- 微信小程序开发之文件上传下载应用场景(附Demo源码)
- emmc和MMC的区别
- 两位数合并成一个四位数的C++代码
- 单字双字三字_单字写法-单字怎么读-双字繁体字怎么写
- 这些支付的负面记录,分分钟影响你的贷款
- Deep Learning读书笔记2---深度前馈网络