python+selenium自动化测试--元素定位

想要知道自己定位对不对,可以打开浏览器的检查页面,按Ctrl+F,检查页面下方弹出搜索框,把路径输入进去,如果可以定位到你想要的位置且只能找到一个,说明就是对的,如果找到了多个,定位就准确,后面程序运行会有问题,如下图所示。name 的定位方法不是唯一的,默认只会获取第⼀个符合要求的特征对应的元素,在确认他是第一个符合要求的特征对应的元素,即可使用。2、 CSS一种标记语言,焦点:数据的样式。1、id,name,class,都是依赖于元素这三个对应的属性,如果元素没有这个三个属性,定位方法不能使用;....
摘要由CSDN通过智能技术生成

web自动化的基本代码

步骤:
1、导包
2、实例化浏览器对象
3、打开网页
4、时间轴观察效果
5、关闭网页
 

"""
web 自动化基本代码
"""
# 1、导包
from time import sleep
from selenium import webdriver

# 2、实例化浏览器对象:类名()
driver = webdriver.Chrome()

# 3、打开网页包含协议头
driver.get('https://www.baidu.com/')

# 4、时间轴观察效果
sleep(5)

# 5、关闭网页
driver.quit()

八大元素定位

1、为什么要使用元素定位?

​ 计算机无法向人一样,所见即所得,因此需要通过元素定位来指定计算机所定位的元素来进行操作

2、定位工具:

​ 1)、谷歌使用 F12 进入开发者工具

​ 2)、右键点击检查进入开发者工具

image-20220305112919211

3、定位元素是依赖于什么?

​ 标签名、属性、层级、路径

定位方式:
1、id
2、name
3、class_name(使用的是class属性进行定位)
4、teg_name (标签名称)
5、link_text(定位超链接 a 标签)
6、partial_link_text(定位超链接 a 标签 包含关系)
7、xpath (路径)
8、css (元素选择器)

 注意:这是 selenium 框架中提供的八大元素定位方法,只要能够定位目标元素,用哪一种都无所谓,最常用的是 id ,xpath,css

id定位方法

说明:通过元素的id属性定位,id一般情况下在当前页面中是唯一。

提示:元素必须要有id属性。

# 语法:
find_element_by_id(元素value)
1、元素定位:首先调用find_element_by_id(元素value)获得元素定位
2、调用send_keys来填写内容
3、通过⽬标元素的 id 属性值定位, 由于 id 值一般是唯一的,因此当元素存在 id 属性值时, 优先使用 id 方法定位元素
# 元素定位:首先调用find_element_by_id(元素value)获得元素定位

# 导包
from time import sleep
from selenium import webdriver

# 实例化浏览器对象
driver = webdriver.Chrome()

# 打开网址url
driver.get('https://www.baidu.com/')

# 需求
driver.find_element_by_id('kw').send_keys('易烊千玺')

# 观察效果
sleep(3)

# 关闭网页
driver.quit()

name定位方法

说明:通过元素的name属性来定位, name一般名称为重复

提示:元素必须要有name属性

1、name方法:由于元素的 name 属性值可能存在重复, 必须确定其能够代表⽬标元素唯⼀性之后, ⽅可使⽤
2、当页⾯面内有多个元素的特征值是相同的时候, 定位元素的⽅法执⾏时,默认只会获取第⼀个符合要求的特征对应的元素
3、因此, 定位元素时需要尽量保证使⽤的特征值能够代表⽬标元素在当前⻚页⾯内的唯⼀性!否则定不了位,添加在第一个定位的位置

name 的定位方法不是唯一的,默认只会获取第⼀个符合要求的特征对应的元素,在确认他是第一个符合要求的特征对应的元素,即可使用。

错误示范:

image-20220305141536639

所以要精准找到在确认他是第一个符合要求的特征对应的元素,方可用这个方法。

driver.find_element_by_name('name的值')
# 导包
from time import sleep
from selenium import webdriver

# 实例化浏览器对象
driver = webdriver.Chrome()

# 打开网址url
driver.get('file:///D:/%E6%A1%8C%E9%9D%A2/page/%E6%B3%A8%E5%86%8CA.html')

# 需求
username = driver.find_element_by_name('userA')
username.send_keys('易烊千玺')
password = driver.find_element_by_name('passwordA')
password.send_keys('12123')

# 观察效果
sleep(3)

# 关闭网页
driver.quit()

class_name 方法

说明:通过元素的class属性来

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值