教你怎么用 Python Selenium 实现自动化测试
前置知识
在学习本文档之前,请确保您掌握以下技能:
- 熟练使用 Python 编程语言
- 了解基本的 HTML 和 CSS
- 熟悉基本的 Selenium 操作
如果您没有相关的知识基础,建议先学习以上知识再来阅读本文。
环境准备
在开始编写自动化测试之前,需要先安装相关的工具和模块。
1. 安装 Python
Python 是编写自动化测试脚本的必要工具,建议安装最新版本的 Python 3.x。
在官网下载 Python 安装包并进行安装即可。
2. 安装 Selenium
Selenium 是一个自动化浏览器测试框架,使用 Python Selenium 可以模拟人工对网站进行操作,比如点击、输入、滚动等等。
使用 pip
命令安装 Selenium,命令为:
pip install selenium
3. 安装浏览器驱动
Selenium 是通过浏览器驱动来控制浏览器的操作的,安装不同浏览器需要对应的浏览器驱动。
比如 Chrome 浏览器需要下载对应的 Chrome 驱动,可以在 官网 下载。
安装之后将驱动添加到环境变量即可。
实现自动化测试
1. 打开网站
在 Selenium 中,使用 webdriver
类可以打开浏览器,并访问指定网址。
from selenium import webdriver
# 打开浏览器
driver = webdriver.Chrome()
# 访问网站
driver.get("https://www.baidu.com")
以上代码会打开 Chrome 浏览器,并访问百度的首页。
2. 操作网页元素
Selenium 可以对网页元素进行模拟点击、输入等操作,可以通过元素的 id
、name
、class
、xpath
等属性来定位元素。
比如在百度首页的搜索框内输入 Python Selenium
:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# 打开浏览器
driver = webdriver.Chrome()
# 访问网站
driver.get("https://www.baidu.com")
# 定位搜索框
search_box = driver.find_element_by_name("wd")
# 向搜索框中输入文字
search_box.send_keys("Python Selenium")
# 模拟回车键
search_box.send_keys(Keys.ENTER)
3. 断言测试结果
自动化测试不仅需要模拟操作,还需要对测试结果进行验证。
比如搜索 Python Selenium
后,百度搜索结果页面标题应该会包含这个关键字:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# 打开浏览器
driver = webdriver.Chrome()
# 访问网站
driver.get("https://www.baidu.com")
# 定位搜索框
search_box = driver.find_element_by_name("wd")
# 向搜索框中输入文字
search_box.send_keys("Python Selenium")
# 模拟回车键
search_box.send_keys(Keys.ENTER)
# 断言搜索结果中是否包含 "Python Selenium" 关键字
assert "Python Selenium" in driver.title
以上代码在搜索 Python Selenium
后,会验证搜索结果页面的标题是否包含了 Python Selenium
,如果包含则测试通过,否则测试失败。
示例说明
示例 1:模拟登录操作
假设有一个网站,需要登录后才能进行操作,那么可以使用 Selenium 模拟登录动作。
from selenium import webdriver
# 打开浏览器
driver = webdriver.Chrome()
# 访问网站
driver.get("https://www.example.com")
# 定位登录链接并点击
login_link = driver.find_element_by_css_selector("a[href='/login']")
login_link.click()
# 定位用户名和密码输入框并输入信息
username_input = driver.find_element_by_name("username")
password_input = driver.find_element_by_name("password")
username_input.send_keys("example")
password_input.send_keys("123456")
# 提交登录表单
login_form = driver.find_element_by_id("login-form")
login_form.submit()
# 断言是否成功登录
assert "欢迎使用" in driver.page_source
以上代码在打开网站后,找到登录链接并点击,然后在弹出的登录页面中输入用户名及密码并提交表单。最后检查是否成功登录。
示例 2:爬取数据
使用 Selenium 还可以取代传统的爬虫工具,进行一些简单的网页数据爬取工作。
比如在某个电商网站爬取商品的信息:
from selenium import webdriver
# 打开浏览器
driver = webdriver.Chrome()
# 访问网站
driver.get("https://www.example.com")
# 定位搜索框并输入关键字
search_box = driver.find_element_by_name("search")
search_box.send_keys("手机")
# 模拟回车键
search_box.submit()
# 获取搜索结果列表中的元素,并获取商品名称和价格
product_list = driver.find_elements_by_css_selector(".product-list .product-item")
for product in product_list:
name = product.find_element_by_css_selector(".product-name").text
price = product.find_element_by_css_selector(".product-price").text
print(name, price)
以上代码在打开网站后,在搜索框中输入关键字 手机
,并模拟回车键。然后获取搜索结果列表中的商品信息,包括名称和价格。最后打印出所有商品的信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:教你怎么用python selenium实现自动化测试 - Python技术站