css定位和xpath定位,selenium的css定位与xpath定位
大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求。css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁。
一:css:属性定位
1、css可以通过元素的id、class、标签这三个常规属性直接定位,如下:
①. css用#号表示id属性,如:
id=“kw” 可以写成:#kw
②. css用.表示class属性,如:
class="s_ipt"可以写成:.s_ipt
③. css直接用标签名称,无任何标识符,如:input
二:css:其他属性
1、css除了上述以外,也可以通过其他属性定位,如下:
①. css通过name属性定位:
driver.find_element(By.CSS_SELECTOR,"[name='wd']")
②. css通过autocomplete属性定位:
driver.find_element(By. CSS_SELECTOR,"[autocomplete='off']")
③.css通过type属性定位:
driver.find_element(By.CSS_SELECTOR,"[type='text']")
三:css:标签
1、css页可以通过标签与属性的组合来定位元素,如下:
①. css通过标签与class属性的组合定位driver.find_element(By.CSS_SELECTOR,"input.s_ipt")
②. css通过标签与id属性的组合定位driver.find_element(By.CSS_SELECTOR,"input#kw")
③. css通过标签与其他属性组合定位driver.find_element(By.CSS_SELECTOR,"input[id='kw']")
四:css:层级关系
1、如://form[@id=‘form’]/span/input和//form[@class=‘fm’]/span/input
①. css通过层级关系定位driver.find_element(By.CSS_SELECTOR,"form#form>span>input")
②. css通过层级关系定位driver.find_element(By.CSS_SELECTOR,"form.fm>span>input")
五:css:索引
1、css也可以通过索引option:nth-child(1)来定位子元素,如下:
①. 选择第一个子元素driver.find_element(By.CSS_SELECTOR,"select#nr>option:nth-child(1)")
②. 选择第二个子元素driver.find_element(By.CSS_SELECTOR,"select#nr>option:nth-child(2)")
③. 选择第三个子元素driver.find_element(By.CSS_SELECTOR,"select#nr>option:nth-child(3)")
六:css:逻辑运算
1、css同时匹配两个属性,不需要and关键字driver.find_element(By.CSS_SELECTOR,"input[id='kw'][name='wd']")
七:css:模糊匹配driver.find_element(By.CSS_SELECTOR,"input:contains('kw')")
一、xpath:属性定位
1、xpath也可以通过元素的id、name、class这些属性定位,如下:
①. 用xpath通过id属性定位
driver.find_element(By.XPATH,"//[@id='kw']")
②. 用xpath通过name属性定位
driver.find_element(By.XPATH,"//[@name='wd']")
③. 用xpath通过class属性定位
driver.find_element(By.XPATH,"//*[@class='s_ipt']")
二、xpath:其他属性
1、没有上述属性,可以通过其他属性定位,如下:
driver.find_element(By.XPATH,"//*[@autocomplete='off']")
三、xpath:标签
1、如果同一个属性,同名的比较多,可以通过标签筛选下
2、如果不想制定标签名称,可以用号表示任意标签
3、如果想制定具体某个标签,就可以直接写标签名称
①. 用xpath通过其他属性定位driver.find_element(By.XPATH,"//input[@autocomplete='off']")
②. 用xpath通过id属性定位driver.find_element(By.XPATH,"//input[@id='kw']")
③. 用xpath通过name属性定位driver.find_element(By.XPATH,"//name[@id='wd']")
四、xpath:层级
1、如果一个元素,他的属性不明显,无法直接定位,可以先找到他的父元素
2、找到父元素,再找下一级就能定位
①. 通过定位父元素来定位input输入框driver.find_element(By.XPATH,"//span[@id='s_kw_wrap']/input")
②. 通过定位爷元素来定位input输入框driver.find_element(By.XPATH,"//form[@id='form']/span/input")
五、xpath:索引
1、如果一个元素和他同级的标签一样,无法通过层级定位
2、可以通过排序定位
①. 用xpath定位第一位driver.find_element(By.XPATH,"//select[@id='nr']/option[1]")
②. 用xpath定位第二位driver.find_element(By.XPATH,"//select[@id='nr']/option[2]")
③. 用xpath定位第三位driver.find_element(By.XPATH,"//select[@id='nr']/option[3]")
六、xpath:逻辑运算
1、xpath还有一个比较强的功能,是可以多个属性逻辑运算的,可以支持and、or、not
2、一般用的比较多的是and运算,同时满足两个属性driver.find_element(By.XPATH,"//select[@id='nr' and @autocomplete='off']")
七、xpath:模糊匹配
1、xpath强大的模糊匹配
2、掌握了模糊匹配功能,基本上没有定位不到的
3、by_partial_link,模糊匹配定位
driver.find_element(By.XPATH,"//*[contains(text(),'hao123')]")
css定位和xpath定位,selenium的css定位与xpath定位相关推荐
- autoware定位:gnss定位与lidar定位(四)
autoware定位:gnss定位与lidar定位(四) 介绍如何在autoware中使用GNSS进行定位 启动autoware $ cd ~/autoware.ai $ source install ...
- 【高精度定位】RTK定位与RTD定位知识科普
高精度定位一般指亚米级别或厘米级别的定位,常见的室内有蓝牙AoA和UWB两种技术,室外有北斗地基增强技术,这些技术都是采用算法进行定位. 工业4.0时代,在资源和环境约束不断强化的背景下,创新驱动传统 ...
- 蓝牙定位与UWB定位的对比
室内定位技术有好多种,有发展多年的超声波.蓝牙(iBeacon).红外.超宽带UWB以及最近兴起的蓝牙5.1 AOA等等.UWB在国内发展也有十多年了,其应用似乎很广,市场也比较大,UWB在苹果最新手 ...
- python元素定位id和name_Python+Selenium自动化软件测试实战:Xpath,class,id,name定位和Iframe框架跳转...
web自动化的前提:环境要求:python和pycharm 2.安装好环境需要后还需要cmd 输入pip install selenium 引入selenium web自动化测试库 3.google浏 ...
- 简单理解sticky定位与fixed定位的区别
fixed:固定定位,相对于可视窗口定位,一但使用top,left绑定后,无论怎么滚动可视窗口区域(也就是滑动滚动条),它的位置都不会发生变化 sticky:粘性定位,相当于是相对定位和固定定位的结合 ...
- python爬虫和定位_Python网络爬虫实战,照片定位与B站弹幕!
之前两篇已经说完了如何爬取网页以及如何解析其中的数据,那么今天我们就可以开始第一次实战了. Python资源共享群:626017123 这篇实战包含两个内容. * 利用爬虫调用Api来解析照片的拍摄位 ...
- python爬虫和定位_Python网络爬虫实战(三)照片定位与B站弹幕
之前两篇已经说完了如何爬取网页以及如何解析其中的数据,那么今天我们就可以开始第一次实战了. 这篇实战包含两个内容. * 利用爬虫调用Api来解析照片的拍摄位置 * 利用爬虫爬取Bilibili视频中的 ...
- RTD定位与RTK定位科普介绍
高精度定位,通常指的是亚米级.厘米级.毫米级的定位精度,在测绘.无人机.精准控制领域广泛应用, RTD(Real Time Differential),实时动态码相位差分技术.实时动态测量中,把实时动 ...
- 北斗定位与GPS定位的区别
欢迎来到东用小知识课堂,每天学习一分钟,让你紧跟时代,扩充自己,成为大佬不是梦! 1.覆盖范围:北斗定位系统是覆盖中国本土的区域导航系统.覆盖范围东经约70°一140°,北纬5°一55°.GPS是 ...
最新文章
- python 脚本撞库国内“某榴”账号
- extjs 4 tab panel得strip在IE下右偏解决办法
- 关于nginx信号控制的“故障”案例
- 学点 C 语言(35): 函数 - 递归
- nyoj99(欧拉路)
- java多线程启动BIO和NIO服务端同时启动接受图片和字符数据
- 揭秘python的5种最佳调试方法_揭秘 IPython 的 5 种最佳调试方法-阿里云开发者社区...
- centos7安装flink集群_《从0到1学习Flink》—— Flink 写入数据到 Kafka
- 【HDU - 6016】Count the Sheep (思维,类似二分图)
- Promise源码实现
- 配置项setOption -- title
- sitemesh 2.4 装饰器学习
- Jupyter Notebook界面也可以如此炫酷?有人把Notebook玩出了新花样
- excel出入库采购库存管理系统
- 315|大数据杀熟,如何才不被坑?
- 图片秒加水印制作生成威信小程序源码下载
- B站哔哩哔哩视频一键下载,这个视频下载工具太给力了
- SQL读取Excel数据
- 【OpenVINO 3】POT量化流程
- python从键盘输入一个数、判断其是奇数还是偶数_从键盘上任意输入一个正数,判断是奇数还是偶数...