selenium之元素定位

本文介绍了如何安装Selenium以及对应的Chrome浏览器驱动,强调了驱动版本与浏览器版本需对应。接着,详细阐述了通过id、name、class_name、link_text、partial_link_text、tag_name、xpath和css等多种方式对网页元素进行定位的方法,这些都是自动化测试中的关键步骤。
摘要由CSDN通过智能技术生成

一、selenium安装

pip3 install selenium

二、安装浏览器驱动

1:下载最新的浏览器驱动

chrome浏览器驱动下载地址:

https://registry.npmmirror.com/binary.html?path=chromedriver/

查看自己电脑上安装的chrome浏览器版本号,驱动和浏览器版本号需对应。

查看自己电脑浏览器的版本号:

进入驱动下载地址,下载驱动;

比如我的谷歌版本是113.0.5672.126,我下载对应的chromedriver的版本是113.0.5672.63,

点击进去之后,如果你是windows系统就选win32这个,苹果的系统就选相对应的下载就行了。

查看驱动的版本号:

2、安装

解压下载的驱动文件放入/user/local/bin下

3:测试安装成功

写一个简单的selenium脚本进行验证

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('http://www.baidu.com')

能成功打开浏览器并进入百度首页,即为安装成功。

三、元素定位方式

元素定位方式分为八大元素定位

以百度一下为例

1:通过id进行定位

定位输入框,并输入内容,获取输入框的id属性的值。

 定位:

# 通过id来定位
ele = driver.find_element('id', 'kw')    # 定位元素
ele.send_keys('测试')                     # 输入内容

2:通过name定位

定位百度输入框,获取name属性的值

 定位:

# 通过name来定位
ele = driver.find_element('name', 'wd')
ele.send_keys('通过name定位')

3:通过class_name定位

定位“换一换”按钮,并且进行点击操作

定位:

注意:定位方式的class name中间是个空格

# 通过class_name来定位
ele = driver.find_element('class name', 'hot-refresh-text')
ele.click()             # 点击操作

 4:通过link_text定位

通过超链接的文本进行定位

定位“新闻”,并进行点击操作

定位:

# 通过link_text来定位
ele = driver.find_element('link text', '新闻')
ele.click()

5:通过partial_link_text定位

使用场景:超链接的文本超长,可以只输入部分文本

定位“hao123”

定位:

# 通过partial_link_text定位
ele = driver.find_element('partial link text', 'hao')
ele.click()

6:通过tag_name定位

使用标签进行定位,一般标签都是有多个的,此时可以使用find_elements进行查找,查找的结果是一个列表。

例如:定位标签<a>

# 通过tag_name来定位
eles = driver.find_elements('tag name', 'a')
print(len(eles), eles)
# 点击第5个a标签
eles[4].click()

 7:通过xpath定位

在F12中复制要定位元素的路径

定位百度输入框:

定位:

# 通过xpath来定位
ele = driver.find_element('xpath', '/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input')
ele.send_keys('xpath')

8:通过css进行定位

定位百度输入框

定位:

# 通过css来定位
ele = driver.find_element('css selector', '#kw')
ele.send_keys('css')

在输入定位方式时,可以导入By方法,可以防止输入定位方式拼写错误。

from selenium.webdriver.common.by import By

ele = driver.find_element(By.ID, 'kw')
ele.send_keys('测试') 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值