教你怎么用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中,多线程可以让程序更加高效地利用CPU资源,但是多线程同时访问同一个全局变量,会有一些问题,如数据不同步,数据错误等问题,接下来,我们将针对这个问题提供解决方案。 问题描述 在多线程环境下,如果同时对同一个全局变量进行读写操作,会出现数据不同步、数据错误等问题。比如以下代码: import …

    python 2023年5月19日
    00
  • 老生常谈Python中的Pickle库

    接下来我将详细介绍 “老生常谈Python中的Pickle库”的攻略。 什么是Pickle库 Pickle是Python中的标准模块,可以用来将数据对象转换为二进制形式进行存储,或者将二进制形式的数据对象还原为原来的数据对象模型。Pickle可以将Python中的任何数据对象进行序列化和反序列化操作,包括自定义的数据类型、类实例对象、列表、元组、字典等。 P…

    python 2023年6月2日
    00
  • python自动化测试三部曲之request+django实现接口测试

    以下是关于“Python 自动化测试三部曲之 request+Django 实现接口测试”的完整攻略: Python 自动化测试三部曲之 request+Django 实现接口测试 在 Python 自动化测试中,使用 request 库和 Django 框架可以实现接口测试。以下是 Python 自动化测试三部曲之 request+Django 实现接口测…

    python 2023年5月15日
    00
  • Python Matplotlib基本用法详解

    Python Matplotlib基本用法详解 简介 Matplotlib是一个用于创建高质量图表的Python库,它能够以各种硬拷贝格式和跨平台交互式环境生成出版物质量的图表。本攻略将介绍Matplotlib的基本使用方法,包括图表的类型、线条和标注的设置、字体的设置等等。 安装 在使用Matplotlib之前,需要先安装该库,可以使用以下命令进行安装: …

    python 2023年5月19日
    00
  • python读取文件指定行内容实例讲解

    Python读取文件指定行内容是一个非常实用的技巧,在处理较大的文件时特别有效。下面是完整攻略: 步骤1:打开文件 首先,我们需要打开文件并读取内容。使用Python内置的open()函数可以打开文件并把文件内容读取到一个字符串中。这是一条python代码示例: with open(‘test.txt’, ‘r’) as file: contents = f…

    python 2023年6月5日
    00
  • python基础入门之字典和集合

    Python中的字典(Dictionary)和集合(Set)是常用的数据类型之一。它们非常灵活,能够快速地存储大量的数据,并且可以通过键值对的方式来进行快速的检索和访问。 一、字典 字典是一种可变的数据类型,它的数据结构类似于映射:每个键值对都由一个键和一个与之对应的值组成。 1. 创建字典 可以使用{}或dict()函数来创建一个字典: # {}创建一个空…

    python 2023年5月13日
    00
  • Python ZipFile模块详解

    Python ZipFile模块详解 Python ZipFile模块提供了一种在Python程序中操作zip格式归档文件的方法。在本文中,我们将深入研究ZipFile模块的使用方法,并且提供一些示例以演示其功能。 安装 ZipFile模块是Python标准库的一部分,因此不需要额外安装。 基本用法 首先,我们需要导入ZipFile模块,然后打开zip归档文…

    python 2023年6月3日
    00
  • python连接mysql有哪些方法

    Python连接MySQL可以采用以下几种方法: 1. 使用Python标准库中的mysql.connector模块 mysql.connector模块是Python自带的一个连接MySQL的模块,可以通过pip install mysql-connector-python安装。该模块使用MySQL的官方mysql-connector-c库连接MySQL,支…

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