python3 + selenium webdriver自动化测试启动不同浏览器

selenium webdriver自动化测试启动不同浏览器

  • selenium webdriver 介绍
  • Selenium WebDriver 进行自动化测试的一般流程
  • 浏览器驱动下载
  • 浏览器驱动的安装
  • chrome、edge、Firefox、Opera、Safari、phantomjs 应用
  • Headless Chrome 、Headless Firefox 应用

selenium webdriver 介绍

Selenium WebDriver 是 Selenium 项目中的一个核心组件,它提供了跨多种浏览器的自动化测试能力。Selenium WebDriver 旨在替代之前的 Selenium RC (Remote Control) 模型,为开发人员和测试人员提供了更简单、更高效的自动化测试解决方案。

Selenium WebDriver 主要特点如下:

  • 跨浏览器支持:
    Selenium WebDriver 支持主流浏览器,如 Chrome、Firefox、Safari、Edge 等,并且可以在不同的操作系统(Windows、macOS、Linux)上运行。

  • 多语言支持:
    Selenium WebDriver 提供了 Java、Python、C#、Ruby、JavaScript 等多种编程语言的 API,开发人员可以选择熟悉的语言来编写测试用例。

  • 驱动程序架构:
    Selenium WebDriver 采用驱动程序的架构,每种浏览器都需要对应的驱动程序(如 ChromeDriver、GeckoDriver 等)来控制浏览器的自动化操作。

  • API 丰富:
    Selenium WebDriver 提供了大量的 API 供开发人员使用,可以执行各种Web元素定位、交互、导航、断言等操作。

  • 灵活性和可扩展性:
    Selenium WebDriver 可以集成到各种测试框架和持续集成工具中,如 JUnit、pytest、Jenkins 等,提高了测试的灵活性和可维护性。

  • 支持无头浏览器:
    Selenium WebDriver 除了支持传统的有界面浏览器,还支持无头浏览器(如 PhantomJS、Headless Chrome/Firefox),可以在无界面环境下进行自动化测试。

Selenium WebDriver 进行自动化测试的一般流程

  • 安装并配置好对应浏览器的驱动程序。
  • 使用 WebDriver API 创建浏览器实例,并打开待测试的网页。
  • 定位页面元素,并对这些元素执行各种操作,如输入文本、点击按钮等。
  • 对测试结果进行断言验证。
  • 关闭浏览器实例,完成测试。

浏览器驱动下载

浏览器驱动名称备注
Chromechromedriver浏览器版本需要和驱动版本对应
Firefoxgeckodriver浏览器版本需要和驱动版本对应
Edgeedgedriver浏览器版本需要和驱动版本对应
IEIEdriverServer浏览器版本需要和驱动版本对应
safarisafariDriver自带webdriver
operaoperadriverOpera基于Chromium开发
phantomjsphantomjs无UI界面,2018年停止了开发和维护

浏览器驱动的安装

1.下载对应浏览器驱动成功后
2.以ubuntu 为例,将下载后的驱动移动到 /usr/local/bin/ 目录下
3.检查浏览器驱动与浏览器版本是否一致
可以双击驱动程序,未出现闪退证明版本吻合

chrome、edge、Firefox、Opera、Safari、phantomjs 应用

from selenium import webdriverdef test_webdriver():driver = webdriver.Chrome()# driver=webdriver.Edge()# driver = webdriver.Firefox()# driver = webdriver.Opera()# driver = webdriver.Safari()# driver = webdriver.PhantomJS()# 需要访问的地址driver.get("http://xxxx")# 对页面进行操作driver.find_element_by_xpath("//a[@id='LoginLink']").click()# 运行结束关闭整个浏览器窗口driver.close()# 调用该函数
test_webdriver()

python xxxx.py 运行即可

Headless Chrome 、Headless Firefox 应用

Headless Chrome 是一种无界面的Chrome浏览器
Headless Firefox是一种无界面的Firefox浏览器

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.chrome.options import Optionsdef test_webdriver():options = Options()options.add_argument("--headless")driver = webdriver.Chrome(options=options)# driver = webdriver.Firefox(options=options)# 需要访问的地址driver.get("http://xxx")# 对页面进行操作driver.find_element_by_xpath("//a[@id='LoginLink']").click()# 运行结束关闭整个浏览器窗口driver.close()# 调用该函数
test_webdriver()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/15075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

shell命令运行原理及Linux权限问题

目录 shell命令以及运行原理用户管理添加用户删除用户sudo Linux权限的概念Linux权限管理文件访问者的分类(人)文件类型和访问权限(事物属性)文件权限值的表示方法文件访问权限的相关设置方法 目录的权限粘滞位 shell命令以及运行…

备考AMC8和AMC10竞赛,吃透2000-2024年1850道真题和解析(持续)

多做真题,吃透真题和背后的知识点是备考AMC8、AMC10有效的方法之一,通过做真题,可以帮助孩子找到真实竞赛的感觉,而且更加贴近比赛的内容,可以通过真题查漏补缺,更有针对性的补齐知识的短板。 今天我们继续…

PostgreSQL基本使用Schema

参考文章:PostgreSQL基本使用(3)Schema_pg数据库查询schema-CSDN博客 PostgreSQL 模式(Schema)可以理解为是一个表的集合(或者所属者)。 例如:在 MySQL 中,Scheam 是库&…

gcc源码分析(AST抽象语法树)

文章目录 三、AST相关1、AST(抽象语法树)1.1 树结点的声明1.2 树结点的结构1.2.1 tree_node联合体1.2.2 tree_base结构体1.2.3 tree_common结构体1.2.4 常量结构体1.2.5 **标识符节点**2、符号绑定,作用域与block树节点2.1 lang_identifier结构体2.2 c_binding结构体2.3 scop…

HLS视频加密,让您的视频内容更安全!

背景介绍 HLS视频加密是一种基于HTTP Live Streaming(HLS)协议的加密技术。它的核心思想是将视频切片进行加密处理,在客户端播放时需要先获取解密密钥才能正常偶发。通过这种方式,HLS加密可以有效防止未经授权的第三方窃取视频内…

测试短信推荐参考

短信测试参考 国外: smstome 支持多个国家号码 官网地址: https://smstome.com/ quackr.io 支持多个国家号码 官网地址: https://quackr.io/ receive-smss 支持多个国家号码 地址: https://receive-smss.com/ receive-sms-fr…

C#字典的常用方法

C#的字典(Dictionary)类是一个通用的集合类,它实现了键值对的存储和访问。以下是一些常用的字典方法: Add(key, value):向字典中添加一个指定的键值对。Remove(key):从字典中移除具有指定键的元素。Contai…

LLM大模型的7种推理框架分析

LLM的7种推理框架 Hugging Face的transformers 这是一个Python库,可以简化本地运行LLM的过程。 Transformers的优点: 自动模型下载提供代码片段非常适合实验和学习 Transformers的缺点: 需要对ML和NLP有深入了解需要编码和配置技能 2.L…

深度学习之基于Tensorflow低光增强的深层Retinex分解

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 在图像处理领域,低光照环境下的图像增强是一个具有挑战性的问题。为了提高图像的可…

纽曼新品X1000:轻巧便携仅重9.9公斤的1度电应急电源

在户外救援行动和应急设备中,电力供应的稳定性和安全性直接影响到救援工作的效率和成功率。在现代救援工作中,常见的光学声波探测仪、通信联络设备、气象检测仪、生命探测仪、照明设备等装备均需有持续的电力供应,才能保障救援工作的有序开展…

西门子WINCC8.0VBS脚本学习讲解

WinCC VBS脚本置位/复位/取反 二进制变量 "TAG1_BOOL1" 进行置位复位取反操作 步骤:按钮-->对象属性-->事件-->单击鼠标VBS动作填入代码如下: 对二进制变量进行复位 对二进制变量进行置位 对二进制变量进行取反 VBS脚本数学运算/读写批处理 …

第十六讲:数据在内存中的存储

第十六讲:数据在内存中的存储 1.整数在内存中的存储1.1存储方式1.2大小端字节序1.3大小端字节序排序规则1.4为什么要有大小端1.5练习1.5.1练习11.5.2练习21.5.3练习31.5.4练习41.5.5练习51.5.6练习61.5.7练习7 2.浮点数在内存中的存储2.1练习2.2浮点数的存储2.3浮点…

如何将数据从一部手机传输到另一部手机[安全快速]

概括 手机之间无需使用蓝牙即可传输文件,配合专业的文件传输工具更高效。本文将向您介绍几种使用不同的数据传输工具快速安全地将数据从一部手机传输到另一部手机的方法,特别是当有大文件或大量文件时。现在,我们来看看。 需要在朋友或家人之…

Rust 赋能前端 -- 写一个 File 转 Img 的功能

所有耀眼的成绩,都需要苦熬,熬得过,出众;熬不过,出局 大家好,我是柒八九。一个专注于前端开发技术/Rust及AI应用知识分享的Coder 此篇文章所涉及到的技术有 Rustwasm-bindgen/js-sys/web-sysWeb WorkerWebAssemblyWebpack/Vite配置WebAssemblyOffscreenCanvas脚手架生成项…

校园二手书交易|基于SprinBoot+vue的校园二手书交易管理系统(源码+数据库+文档)

校园二手书交易管理系统 目录 基于SprinBootvue的校园二手书交易管理系统 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3 卖家用户功能模块 4 用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八…

Linux:iptables防火墙部署优化之连接转移(目的地地址转化)

Linux:iptables防火墙部署优化之连接转移(目的地地址转化) 文章目录 Linux:iptables防火墙部署优化之连接转移(目的地地址转化)node1操作检测ip情况关闭firewalld防火墙服务,并锁定该服务开启ip…

什么是分布式会话

分布式会话是指在分布式系统中实现用户会话管理的一种机制。在传统的单服务器架构中,用户的会话数据通常存储在单个服务器或应用服务器的内存中。然而,随着业务的发展和用户量的增加,单服务器架构往往无法满足高可用性和高并发的需求&#xf…

Minio WebUploader上传文件的高级用法之进度条显示、文件过滤、图片预览、图片压缩

系列文章目录 第十章 Minio WebUploader上传文件的高级用法之进度条显示、文件过滤、图片预览、图片压缩 Minio WebUploader上传文件的高级用法之进度条显示、文件过滤、图片预览、图片压缩 系列文章目录进度条显示文件过滤图片预览图片压缩 进度条显示 使用进程文件上传时&a…

基于springboot+html的二手交易平台(附源码)

基于springboothtml的二手交易平台 介绍部分界面截图如下联系我 介绍 本系统是基于springboothtml的二手交易平台,数据库为mysql,可用于毕设或学习,附数据库 部分界面截图如下 联系我 VX:Zzllh_

java Iterable和 Iterator接口区别和联系

Iterable 和 Iterator 是 Java 集合框架中用于遍历集合元素的两个接口,它们之间既有区别也有联系。下面详细介绍它们的区别和联系。 Iterable 接口 定义 Iterable 接口位于 java.lang 包中,定义如下: public interface Iterable<T> {Iterator<T> iterator()…