教你怎么用python selenium实现自动化测试

教你怎么用 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 可以对网页元素进行模拟点击、输入等操作,可以通过元素的 idnameclassxpath 等属性来定位元素。

比如在百度首页的搜索框内输入 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技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • python语法 之与用户交互和运算符

    下面是关于Python语法中与用户交互和运算符的完整攻略。 与用户交互 与用户交互是指程序与用户进行沟通,让用户输入数据或进行选择,让程序根据输入来执行不同的代码分支。在Python中,可以使用input()函数来获得用户的输入内容。input()函数会返回用户输入的字符串,可以使用变量来存储这个字符串。 下面是一个示例代码: name = input(&q…

    python 2023年6月5日
    00
  • Python在图片中添加文字的两种方法

    当我们需要在图片中添加文字时,使用Python的PIL库非常方便。下面介绍两种不同的方法。 方法一:使用TextImage类 TextImage类是使用pillow库中的ImageFont和ImageDraw模块所创建的。 第一步:导入相关库 from PIL import Image, ImageFont, ImageDraw 第二步:打开图片并创建一个字…

    python 2023年5月18日
    00
  • Python中的 any() 函数和 all() 函数

    当然,我很乐意为您提供“Python中的any()函数和all()函数”的完整攻略。以下是详细的步骤和示例: Python中的any()函数和all()函数 Python中的any()函数和all()都用于判断可迭代对象中的元素是否为True。它们都返回一个布尔值,any()函数返回True,如果可迭代对象中至有一个元素为True,否则返回False。而al…

    python 2023年5月13日
    00
  • 关于python的矩阵乘法运算

    关于Python的矩阵乘法运算,我将为你提供完整的攻略。 矩阵乘法简介 矩阵乘法是指两个矩阵相乘,得到一个新的矩阵。在Python中,我们可以使用NumPy库来进行矩阵乘法运算。 NumPy库简介 NumPy是Python中用于科学计算的一个重要库。它可以用于数学、储存、处理和操作大型多维数组和矩阵。NumPy库是Python科学计算的核心库,很多其他科学计…

    python 2023年6月5日
    00
  • python 解决print数组/矩阵无法完整输出的问题

    针对print数组/矩阵无法完整输出的问题,我们可以使用python中的numpy库来解决。下面是我整理的完整攻略: 问题描述 有时候,我们使用print函数打印一个较大的数组或者矩阵时,有可能无法完整输出全部元素,而仅仅输出一部分。这时候,我们需要寻找一种解决方案,使得我们能够完整地输出数组或矩阵中的所有元素。 解决方案 使用 python numpy 库…

    python 2023年6月5日
    00
  • python爬虫框架Scrapy基本应用学习教程

    Python爬虫框架Scrapy基本应用学习教程 简介 Scrapy是Python的一个强大的、灵活的、高效的开源网络爬虫框架。它用于从网站上获取有价值的数据,支持处理静态和动态网页,支持多级页面的爬取,可实现高效、快速、可靠的数据获取。同时,Scrapy提供了很多方便的工具,如合理的数据结构、快速的HTML/XML解析、多线程等,简化了爬取网站数据的过程。…

    python 2023年5月14日
    00
  • 解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题

    以下是关于解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题的完整攻略: 问题描述 Windows 7操作系统上安装Python3.7.1后,启动Python时可能会提示缺少.dll文件。这个问题通常是由于缺Microsoft Visual C++ 2015 Redutable Package导致的。解决这个问题可以帮助我们正常地使…

    python 2023年5月13日
    00
  • 一文带你搞懂Python中的文件操作

    一文带你搞懂Python中的文件操作 Python中的文件操作是编程中常用的一项操作。这里将介绍Python中文件的读写、创建、删除、重命名等操作。 打开文件 使用Python中的open()函数可以打开文件。其基本格式为: file = open(file_path, mode) 其中,file_path为文件路径,mode为打开文件的模式。 常用的打开文…

    python 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部