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

yizhihongxing

教你怎么用 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爬虫中,正则表达式常用于解析HTML页面,提取所需的数据。本攻略将详细讲解正则表达式的基本用法、常用符号和示例应用。 基本用法 Python中使用re模块提供的函数来操作正则表达式。常用函数: re.search(pattern, str…

    python 2023年5月14日
    00
  • Python机器学习库scikit-learn使用详解

    Python机器学习库scikit-learn使用详解 什么是scikit-learn scikit-learn是一个用于机器学习的Python库。它建立在NumPy、SciPy和matplotlib之上,是机器学习、数据挖掘和数据分析的重要工具之一。scikit-learn提供了许多经典的机器学习算法,如分类、回归、聚类和降维等。同时,它还提供了数据预处理…

    python 2023年5月23日
    00
  • 在Python中检查数值是否为无穷大或NaN

    首先需要导入math模块,该模块提供了一些数学操作的函数。 检查数值是否为无穷大 使用math模块的isinf函数可以检查一个数值是否为无穷大。 import math num1 = float(‘inf’) num2 = 100 if math.isinf(num1): print("num1 is infinite") else: p…

    python-answer 2023年3月25日
    00
  • python 中 .py文件 转 .pyd文件的操作

    要将Python的.py文件打包成.pyd文件,需要用到Python官方提供的工具——cython,具体步骤如下: 步骤一:安装Cython 在命令行中使用pip命令安装Cython: pip install Cython 步骤二:创建.py文件 首先,需要有一个Python的.py文件,作为要打包的源代码。 例如,以下代码将定义一个名为hello的函数: …

    python 2023年5月14日
    00
  • Python格式化字符串f-string概览(小结)

    让我来详细讲解一下“Python格式化字符串f-string概览(小结)”的完整攻略。 1. 什么是f-string 在Python 3.6及以上版本中,引入了一种新的字符串格式化方式——f-string,它的全称为formatted string literals。f-string能够让我们通过类似于内嵌变量的方式,在字符串中直接引用变量或表达式,并且提供…

    python 2023年6月3日
    00
  • 详解Python 生成器

    Python生成器是一种可以延迟生成一系列值的迭代器。使用生成器可以节省内存并提高程序效率,特别是在处理大量数据时。下面是Python生成器的使用方法攻略。 生成器的创建方法 生成器可以使用两种方式创建:函数生成器和生成器表达式。 函数生成器 函数生成器是指包含 yield 语句的函数。当函数被调用时,生成器会返回一个迭代器,此时函数中的代码并不会运行,直到…

    python-answer 2023年3月25日
    00
  • Python中那些 Pythonic的写法详解

    Python中那些Pythonic的写法详解 什么是Pythonic的写法? Pythonic是指遵循Python语言开发规范和惯例的风格和规范。使用Pythonic的编程风格能够让代码更加简洁、易读、易懂、易于维护和重用。Python中的一些特殊语法和惯用法是Pythonic编程风格的重要组成部分。 Python中那些Pythonic的写法? 篇幅简短的i…

    python 2023年5月13日
    00
  • Python爬虫之对CSDN榜单进行分析

    Python爬虫之对CSDN榜单进行分析 1. 爬取CSDN榜单数据 首先,我们需要利用Python爬虫获取CSDN榜单数据。具体步骤如下: 安装所需的库:requests、BeautifulSoup。 pip install requests pip install BeautifulSoup4 确定爬取的目标链接,并利用requests库发送GET请求获…

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