教你怎么用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 TCPServer 多线程多客户端通信的实现

    Python是一种广泛应用于网络编程中的编程语言,其内置的socket模块提供了一组底层网络接口,可以用来实现各种不同的网络应用。在TCP协议中,一个服务器一般只能同时处理来自一个客户端的连接请求,因此需要使用多线程的技术来实现多客户端同时访问的功能。 在本文中,我们将重点介绍Python中如何使用TCPServer和多线程技术实现多客户端通信的功能。过程中…

    python 2023年5月18日
    00
  • 解决python执行较大excel文件openpyxl慢问题

    以下是关于解决Python执行较大Excel文件openpyxl慢的完整实例教程: 问题描述 当我们使用Python的openpyxl库读取或处理较大的Excel文件时,往往会遇到执行缓慢或卡死的问题。这是由于openpyxl库读取Excel文件时需要将整个文件读入内存中,导致内存占用过大,CPU占用率剧增,从而影响程序的执行效率和响应速度。 解决方案 1.…

    python 2023年5月14日
    00
  • python把数组中的数字每行打印3个并保存在文档中的方法

    要将Python中的数组中的数字每行打印3个并保存在文档中,可以按照以下步骤进行: 第一步:创建一个数组 在 Python 中,可以用以下语句创建一个包含数字的数组: my_array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] 第二步:迭代数组并打印每行3个数字 代码如下: count = 0…

    python 2023年6月6日
    00
  • python实现简单图片物体标注工具

    我们来详细讲解一下“Python实现简单图片物体标注工具”的完整攻略。 1. 确定需求 在开始开发之前,我们首先需要明确自己的需求,也就是要实现一个什么样的图片物体标注工具。我们需要考虑一下以下问题: 我们需要标注什么样的物体? 标注的信息是否需要保存到文件中? 是否需要对标注后的图片进行展示? 2. 准备工作 在开始编写代码之前,我们需要先准备一些需要用到…

    python 2023年5月18日
    00
  • Python实现邮件自动下载的示例详解

    Python实现邮件自动下载的示例详解 在Python中,我们可以使用IMAP协议和Python的imaplib库来实现自动下载邮件的功能。本文将详细讲解Python实现邮件自动下载的示例,包括如何连接到邮箱服务器、如何获取邮件列表、如何下载邮件等内容。 连接到邮箱服务器 以下是一个使用Python imaplib库连接到邮箱服务器的示例: import i…

    python 2023年5月15日
    00
  • Python map()处理多个序列

    Python中的map()函数可以用于对多个序列进行处理,其基本语法如下: map(function, iterable, …) 其中,function参数表示对序列进行操作的函数,iterable参数表示一个或多个序列(多于一个序列时需要在函数中使用对应数量的参数),返回值为一个迭代器对象,可以使用list()等函数将结果转换为列表。 下面就来看两个示…

    python-answer 2023年3月25日
    00
  • python中遍历文件的3个方法

    以下是详细讲解“Python中遍历文件的3个方法”的完整攻略。 1. 遍历文件的3个方法 在Python中可以使用以下3种方法来遍历文件: 使用os模块的walk()方法 使用os模块的listdir()方法 使用模块的glob()方法 下面我们将分别介绍这3种方法的使用。 2. 使用os块的walk()方法 os模块的walk()方法可以遍历指定目录及其子…

    python 2023年5月14日
    00
  • Python 装饰器实现DRY(不重复代码)原则

    一、什么是DRY原则 DRY指的是Don’t Repeat Yourself 不要重复自己。DRY 原则是软件工程中的一种经典理论,它强调避免重复代码。重复代码是一种代码“坏味道”,会增加代码的复杂性、维护成本和代码的可读性。 二、装饰器是什么 Python中,装饰器是一种可以动态地修改一个函数或类的行为的技术。装饰器本质上是一个函数,它的输入是被装饰的函数…

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