Python +selenium 自动化之元素定位
selenium之八大元素定位:
1、通过ID的方式定位 id是页面的唯一标识
例如:找到百度的搜索输入框
driver.findElement(By.id("kw"))
2、通过tagName的方式定位
用标签名定位非常少 ---一般会重复
driver.findElements(By.tagName("input"));
3、通过className方式定位 className == 样式名
注意:如果元素的class样式有多个,只能通过其中一个去定位
driver.findElement(By.className("s_ipt"))
4、linkText 超链接的完整文本
例如:百度首页的地图
driver.findElement(By.linkText("地图"))
5、partialLinkText超链接部分文本定位
例如:百度首页的百度热搜
driver.findElement(By.partialLinkText("中国迈入创新型国家行列"))
6、name ---name属性
例如:百度首页的输入框
driver.findElement(By.name("wd"))
7、cssSelector
1)根据标签名定位 tagName
driver.findElements(By.cssSelector("input"));
2) 根据ID定位 id前需要加上一个#
driver.findElement(By.cssSelector("#kw"))
3)通过样式名className查找 在样式名前加一个.号
driver.findElement(By.cssSelector(".s_ipt"))
driver.findElement(By.cssSelector(".bg s_btn"))
4)根据属性名查找 (标签名[属性名="属性值"])
属性名查找又可以分为单属性或者多属性
单属性 标签名[属性名="属性值"])
driver.findElement(By.cssSelector("input[name='wd']"))
多属性 (标签名[属性名="属性值"] [属性名="属性值"] [属性名="属性值"])
driver.findElement(By.cssSelector("input[name='wd'][class='s_ipt'][maxlength='255']"))
8、xpath 定位
1)xpath绝对路径 -----容易发生变化,不建议使用
就是根据html格式的路径 一 层层找到需要定位的元素
driver.findElement(By.xpath("html/body/div[1]/div[1]/div[1]/div[1]/form/span[1]/input"))
2)相对路径
格式://->相对路径 标签名[@属性名='属性值']
百度输入框查找
标签名不确定时用* 例一: //*[@name='wd'] #通过下标: //a[@属性名 and @属性名][1]
标签名确定则用标签名代替 例二: //input[@name='wd']
多属性查找, 用and 连接 例三: //input[@name='wd'] and [@autocomplete='off']
支持文本定位 例四: //a[text()='抗击肺炎']
xpath 部分文本的匹配 例五: //a[contains(text(),'击肺炎')]
xpath 部分属性的匹配 例六: //input[contains(@type,'submi')]
3)xpath 轴定位
常用的轴名称主要有父节点parent 、当前节点之前的所有兄弟节点precedling-sibling、当前节点之后的所有兄弟节点following-sibling

轴定位:
# 找子孙后代
//标签[@属性名 ]//标签[@属性名]//标签名[属性名]
# 轴运算
//a[@id='kw']/ancestor::标签名[@属性名]
# 找哥哥姐姐
//标签[@属性名 ]/preceding-sibling::标签名[@属性名]
# 找弟弟妹妹
//标签[@属性名 ]/following-sibling
#找后代
//li[@class='side-menu__item']/descendant::span[text()='基础']
Python +selenium 自动化之元素定位的更多相关文章
- selenium自动化之元素定位方法
在使用selenium webdriver进行元素定位时,有8种基本元素定位方法(注意:并非只有8种,总共来说,有16种). 分别介绍如下: 1.name定位 (注意:必须确保name属性值在当前ht ...
- python ui自动化之元素定位和常用操作
做ui自动化的最基础的就是页面元素定位了,如果连页面元素都定位不到,自动化从何谈起呢?接下来我们就看看页面元素定位的方法吧!(这里就用百度页面来进行演示) 一.最通用的几种定位方式: 1.通过id定位 ...
- Selenium自动化-CSS元素定位
接下来,开始讲解 CSS元素定位. CSS定位速度快,功能多,但是不能向上查找,比 xpath好用,是本人认为最好用的定位方式 大致用法总结: 具体使用仿上篇博客.http://www.cnblo ...
- Python+Selenium 自动化实现实例-定位frame中的元素
场景 处理frame需要用到2个方法,分别是switch_to_frame(name_or_id_or_frame_element)和switch_to_default_content() 如何理解这 ...
- (appium+python)UI自动化_03_元素定位工具
前言 在UI自动化过程中,需要对手机app上的元素进行定位,然后进一步编写自动化脚本操作app.定位元素首先需要定位工具来辅助查看页面元素.小编常用的定位工具有2种,分别是uiautomatorvie ...
- Selenium自动化测试之元素定位
步骤: 1.通过前端工具,查看元素的属性 2.通过属性定位 iddriver.findElement(By.id("kw")) namedriver.findElement(By. ...
- Python+Selenium 自动化实现实例-定位一组对象(checkbox,inputs)
# -*- coding: utf-8 -*- from selenium import webdriver import time import os dr = webdriver.Chrome() ...
- Python+Selenium自动化-定位一组元素,单选框、复选框的选中方法
Python+Selenium自动化-定位一组元素,单选框.复选框的选中方法 之前学习了8种定位单个元素的方法,同时webdriver还提供了8种定位一组元素的方法.唯一区别就是在单词elemen ...
- Python+Selenium自动化-定位页面元素的八种方法
Python+Selenium自动化-定位页面元素的八种方法 本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子. 0.元素定位方法主要有: id定位:find_elemen ...
- Python selenium PO By.XPATH定位元素报错
Python selenium PO By.XPATH定位元素报错 如下代码经常报错: # 首页的“新建投放计划”按钮 new_ads_plan = (By.XPATH, "//*[tex ...
随机推荐
- 特性介绍 | MySQL 测试框架 MTR 系列教程(一):入门篇
作者:卢文双 资深数据库内核研发 去年年底通过微信公众号[数据库内核]设定了一个目标--2023 年要写一系列 特性介绍+内核解析 的文章(现阶段还是以 MySQL 为主). 虽然关注者很少,但本着& ...
- 自定义Feign拦截器
简介 Feign的拦截器RequestInterceptor SpringCloud的微服务使用Feign进行服务间调用的时候可以使用RequestInterceptor统一拦截请求来完成设置head ...
- RK3568用户自定义开机画面功能
RK方案中的开机画面处画逻辑 在RK的方案中,如RK1109,RK1126,RK3568这些嵌入式LINUX方案在开机画面的处理逻辑都是一致的. 用户的uboot,kernel开机画面都是同dts,k ...
- YOLO3论文中文版
文章目录 YOLO3论文中文版 摘要 1.引言 2. 解决方案 2.1 边界框预测 2.2 类预测 2.3 多尺度预测 2.4 特征提取器 2.5 训练 3.我们的做法 4. 失败的尝试 5.这一切意 ...
- 分享一下.net core mvc的ModelStateExtend
主要代码: using Cracker.Core.Function; using Microsoft.AspNetCore.Mvc.ModelBinding; namespace Cracker.Co ...
- 2022-10-26:以下go语言代码输出什么?A:1 3 2;B:1 2 3;C:3 1 2;D:3 2 1。 package main import “fmt“ type temp struc
2022-10-26:以下go语言代码输出什么?A:1 3 2:B:1 2 3:C:3 1 2:D:3 2 1. package main import "fmt" type te ...
- 2021-02-05:给定一个数N,想象只由0和1两种字符,组成的所有长度为N的字符串。如果某个字符串,任何0字符的左边都有1紧挨着,认为这个字符串达标。请问有多少达标的字符串?
2021-02-05:给定一个数N,想象只由0和1两种字符,组成的所有长度为N的字符串.如果某个字符串,任何0字符的左边都有1紧挨着,认为这个字符串达标.请问有多少达标的字符串? 福哥答案2021-0 ...
- 2021-05-06:给定一个二维数组matrix, 你可以从任何位置出发,走向上下左右四个方向 。返回能走出来的最长的递增链长度。
2021-05-06:给定一个二维数组matrix, 你可以从任何位置出发,走向上下左右四个方向 .返回能走出来的最长的递增链长度. 福大大 答案2021-05-06: 自然智慧即可. 动态规划.二维 ...
- ITIL介绍
摘自:金角大王 https://www.cnblogs.com/alex3714/articles/5420433.html 本节内容 浅谈ITIL CMDB介绍 Django自定义用户认证 Rest ...
- Transformer 估算 101
本文主要介绍用于估算 transformer 类模型计算量需求和内存需求的相关数学方法. 引言 其实,很多有关 transformer 语言模型的一些基本且重要的信息都可以用很简单的方法估算出来.不幸 ...