selenium之元素定位

一、selenium安装

pip3 install selenium

二、安装浏览器驱动

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

chrome浏览器驱动下载地址:

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

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

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

selenium之元素定位_第1张图片

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

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

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

查看驱动的版本号:

selenium之元素定位_第2张图片

2、安装

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

3:测试安装成功

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

from selenium import webdriver

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

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

三、元素定位方式

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

selenium之元素定位_第3张图片

以百度一下为例

1:通过id进行定位

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

selenium之元素定位_第4张图片

 定位:

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

2:通过name定位

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

selenium之元素定位_第5张图片

 定位:

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

3:通过class_name定位

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

selenium之元素定位_第6张图片

定位:

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

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

 4:通过link_text定位

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

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

selenium之元素定位_第7张图片

定位:

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

5:通过partial_link_text定位

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

定位“hao123”

selenium之元素定位_第8张图片

定位:

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

6:通过tag_name定位

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

例如:定位标签

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

 7:通过xpath定位

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

定位百度输入框:

selenium之元素定位_第9张图片

定位:

# 通过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进行定位

定位百度输入框

selenium之元素定位_第10张图片

定位:

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

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

from selenium.webdriver.common.by import By

selenium之元素定位_第11张图片

ele = driver.find_element(By.ID, 'kw')
ele.send_keys('测试') 

你可能感兴趣的:(UI自动化,selenium,python,测试工具)