如何使用 Python+selenium 进行 web 自动化测试?

2024-01-04

Selenium是一个自动化测试工具,它可以模拟用户在浏览器中的操作,比如点击、输入、选择等等。它支持多种浏览器,包括Chrome、Firefox、Safari等等,并且可以在多个平台上运行。

安装和配置Selenium

在使用Selenium之前,需要安装Selenium和相应的浏览器驱动程序。这里我们以Chrome浏览器为例,介绍如何安装和配置Selenium。

首先,我们需要安装Selenium库。可以通过以下命令来安装:

pip install selenium

接下来,我们需要下载Chrome浏览器驱动程序。可以从ChromeDriver官网 ↗上下载适合自己的版本。下载完成后,将驱动程序所在的路径添加到环境变量中。

from selenium import webdriver

# 指定驱动程序
所在路径
driver_path = '/path/to/chromedriver'

# 创建Chrome浏览器实例
browser = webdriver.Chrome(executable_path=driver_path)

# 打开网页
browser.get("https://www.baidu.com")

上面的代码中,我们首先导入了webdriver模块,并指定了Chrome浏览器驱动程序所在的路径。接下来,我们创建了一个Chrome浏览器实例,并打开了百度首页。

模拟用户操作

接下来,我们将介绍如何使用Selenium模拟用户在浏览器中的操作。比如,我们可以使用Selenium来自动登录某个网站,或者自动填写表单等等。

点击元素

要点击一个元素,可以使用 click() 方法。比如,我们可以点击一个链接:

# 点击百度首页的新闻链接
news_link = browser.find_element_by_link_text("新闻")
news_link.click()

上面的代码中,我们首先找到了百度首页中的新闻链接,然后使用 click() 方法来点击它。

输入文本

要输入文本,可以使用 send_keys

() 方法。比如,我们可以在 搜索框

中输入关键字:

# 在百度搜索框中输入关键字
search_box
 = browser.find_element_by_id("kw")
search_box.send_keys("Python")

上面的代码中,我们首先找到了百度搜索框,然后使用 send_keys() 方法来输入关键字。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

选择元素

有时候,我们需要从下拉列表或者单选框中选择一个选项。可以使用 select() 方法来实现这个功能。比如,我们可以选择一个下拉列表中的选项:

from selenium.webdriver.support.ui import Select

# 选择一个下拉列表中的选项
select = Select(browser.find_element_by_name
("select"))
select.select_by_value("value")

上面的代码中,我们首先找到了一个下拉列表,然后创建了一个 Select 对象。接下来,我们使用 select_by_ value

() 方法来选择一个选项。

等待元素

有时候,我们需要等待某个元素出现再进行操作。可以使用 WebDriverWait 类来实现这个功能。比如,我们可以等待一个元素出现后再点击它:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 等待一个元素出现后再点击它
element = WebDriverWait(browser, 10).until(
    EC.presence_of_element_located((By.ID, "element_id
"))
)
element.click()

上面的代码中,我们使用 WebDriverWait 类来等待一个元素的出现,然后使用 click() 方法来点击它。

实战应用

在实际项目中,我们可以使用Selenium来完成一些重复性的任务,比如 自动化测试

、数据采集等等。下面,我们将介绍如何使用Selenium来爬取某个网站的数据。

分析网站结构

在爬取网站数据之前,我们需要先了解网站的结构。比如,我们可以使用Chrome浏览器的开发者工具来查看网站的HTML代码和CSS样式。

爬取数据

假设我们要爬取某个电商网站的商品数据,包括商品名称、价格、销量等等。我们可以通过以下步骤来实现:

  1. 打开网站,并搜索关键字;
  2. 获取搜索结果页面中的商品列表;
  3. 遍历商品列表,获取每个商品的名称、价格、销量等信息;
  4. 将商品信息保存到文件中。

下面是代码示例:

# 打开网站,并搜索关键字
browser.get
("https://www.example.com/")
search_box = browser.find_element_by_id("search_box")
search_box.send_keys("Python")
search_button = browser.find_element_by_id("search_button")
search_button.click()

# 获取搜索结果页面中的商品列表
product_list = browser.find_elements_by_class_name("product")

# 遍历商品列表,获取每个商品的名称、价格、销量等信息
for product in product_list:
    name = product.find_element_by_class_name("name").text
    price = product.find_element_by_class_name("price").text
    sales = product.find_element_by_class_name("sales").text

    # 将商品信息保存到文件中
    with open("products.txt", "a") as f:
        f.write(f"{name}\t{price}\t{sales}\n")

上面的代码中,我们首先打开了某个电商网站,并搜索了关键字。然后获取搜索结果页面中的商品列表,遍历商品列表,获取每个商品的名称、价格、销量等信息,并将商品信息保存到文件中。

技术总结

在本篇文章中,我们介绍了如何使用Python的Selenium库进行Web自动化,并且演示了如何将它应用于实际项目中。如果你想要提高工作效率,或者想要学习如何进行自动化测试、数据采集等等,那么Selenium是一个非常好的选择。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Python+selenium 进行 web 自动化测试? 的相关文章

随机推荐

  • HOOPS助力AVEVA数字化转型:支持多种3D模型格式转换!

    行业 电力和公用事业 化工 造船 能源 采矿业 挑战 创建大规模复杂资产的客户需要汇集多种类型的数据 以支持初始设计和创建强大的数字双胞胎 现有版本的产品只支持半打CAD格式 有限的内部开发资源限制了增加对新格式支持的能力 解决方案 HOO
  • 成为一名合格的软件测试工程师,得掌握什么技能?

    在这个信息时代 软件行业的需求空前增长 而 软件测试 工程师作为 软件开发 过程中的重要角色 也越来越受企业的重视 那么 成为一名合格的软件测试工程师需要掌握什么技能呢 我结合多年的教学经验为大家总结出以下几点 1 掌握基础理论 要想楼层盖
  • Web前端安全学习-CSRF

    今天下午上了一堂前端安全的课 挺有意思 记录下来 在上课之前 我对安全的概念是 用户输入是不可信的 所有用户的输入都必须转义之后才入库 然后 上面这个这种方式 仅仅是防止SQL注入攻击 避免业务数据库被渗入 在数据库有了一层安全保护之后 攻
  • 门禁管理:我才知道这个技术,可以如此高效!

    随着社会的发展和科技的进步 门禁监控技术在各类场所得到了广泛的应用 门禁监控系统不仅仅是简单的出入口管理 更是对安全和隐私的重要保障 客户案例 企业办公大楼 在现代企业办公环境中 对于办公大楼的安全管理显得尤为重要 通过部署泛地缘科技推出的
  • 挑选知识付费平台不再迷茫:掌握这些技巧,轻松找到适合自己的平台

    明理信息科技知识付费saas租户平台 在当今的知识付费市场中 用户面临的选择越来越多 如何从众多知识付费平台中正确选择属于自己的平台呢 下面 我们将为您介绍明理信息科技知识付费平台相比同行的优势 帮助您做出明智的选择 一 创新的技术架构 高
  • 8大数字技术打造ESG发展新范式!工业“双碳”建设应该这么做

    随着国家 双碳 目标的提出 数字化 绿色化证进入历史交汇 协同发展 路径合一 相辅相成的重要阶段 在此背景下 中国信通院 中国航天航空 工业互联网产业联盟于2022年联合出版了 数字技术赋能工业碳达峰碳中和应用指南 以下简称 指南 今年又细
  • 高德地图API

    首先注册高德地图API账户成为开发者用户 然后申请key与密钥 应用管理 我的应用 创建新应用 加载高德地图
  • 图像分割-Grabcut法

    版权声明 本文为博主原创文章 转载请在显著位置标明本文出处以及作者网名 未经作者允许不得用于商业目的 本文的C 版本请访问 图像分割 Grabcut法 C CSDN博客 GrabCut是一种基于图像分割的技术 它可以用于将图像中的前景和背景
  • 在线视频编辑大师视频画中画批量制作、批量添加背景图片的视频剪辑教程

    在数字媒体时代 创意与个性化的内容成为吸引观众的关键 媒体梦工厂软件以其独特的画中画功能 让您的视频剪辑更具创意与视觉冲击力 无论是制作图片与视频的画中画效果 还是批量添加背景图片效果 都能助您一臂之力 1 软件的画中画功能 允许您将图片与
  • 淘宝商品类目接口API:获取淘宝商品分类类目信息

    cat get 获得淘宝分类详情 响应参数 名称 类型 必须 示例值 描述 info Mix 0 cid 16 parent cid 0 name 其他女装 is parent true status normal sort order 0
  • 深入了解Python中的进程控制和监控技巧,提高系统稳定性

    概要 在计算机系统中 进程管理是一个重要的任务 它涉及创建 启动 监控 终止和管理运行中的进程 Python作为一门强大的编程语言 提供了丰富的库和模块 使得进程管理变得相对容易 本文将介绍如何使用Python来实现系统进程管理 包括创建和
  • stm32毕设分享 stm32单片机酒精浓度酒驾检测系统 - 物联网 嵌入式

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 硬件设计 MQ 3酒精乙醇传感器模块 SIM800C模块 5 软件说明 系统框图
  • 5年经验之谈 —— 为什么要做自动化测试?

    自动化测试是一种软件测试方法 通过编写和使用自动化脚本和工具 以自动执行测试用例并生成结果 自动化旨在替代手动测试过程 提高测试效率和准确性 自动化测试可以覆盖多种测试类型 包括功能测试 性能测试 安全测试等 以确保软件系统在各个方面的质量
  • 【史上最细教程】CentOS7 下载安装 RabbitMQ(两种方式:手动安装 / Docker安装)

    文章目录 史上最细教程 CentOS7 下载安装 RabbitMQ 方式一 手动安装 1 下载安装Erlang RabbitMQ 2 防火墙 安全组端口放行 3 启动RabbitMQ服务 4 浏览器用户登录
  • Win32 文件分割合并

    CFileSplitUtils h pragma once include
  • Mybatis插件介绍与基本使用

    文章目录 Mybatis插件 四大接口介绍 所需要的注解 Interceptor接口介绍 Executor接口 Executor接口介绍 Executor 接口的一些关键方法
  • 教育场景数字化中音视频小程序的发展

    教育场景数字化逐步成为刚需 2018年以来 国家对在线教育行业的监管收紧 以及受益于 5G 技术的发展 教育科技逐步走向成熟化和规范化 教育行业的本质是人与人 老师与学生 老师与家长 以及更多角色直接的沟通与互动 而仅仅是古早式的在线文字已
  • 网络对讲终端 网络音频终端 网络广播终端SV-7011V使用说明

    高速路sip广播对讲求助 隧道sip对讲调度SIP 7011 网络广播终端SV 7011 壁挂式对讲终端网络监听终端SIP广播终端 sip语音对讲终端SIP 7011 SV 7011网络对讲终端网络对讲 网络厂播 监听 SV 7101网络解
  • 如何用Java实现自动化测试和质量控制?

    使用 Java 实现 自动化测试 和质量控制是现代 软件开发 中的重要环节 下面将详细介绍如何使用Java实现自动化测试和质量控制 一 自动化测试概述 自动化测试是指使用软件工具和脚本来执行测试任务 以代替人工操作并提高测试效率 以下是一些
  • 如何使用 Python+selenium 进行 web 自动化测试?

    Selenium是一个自动化测试工具 它可以模拟用户在浏览器中的操作 比如点击 输入 选择等等 它支持多种浏览器 包括Chrome Firefox Safari等等 并且可以在多个平台上运行 安装和配置Selenium 在使用Seleniu