技术分享 | Selenium多浏览器处理

实战演示

  • Python 版本
#导入依赖
import os
from selenium import webdriverdef test_browser():#使用os模块的getenv方法来获取声明环境变量browserbrowser = os.getenv("browser").lower()#判断browser的值if browser == "headless":driver = webdriver.PhantomJS()elif browser == "firefox":driver = webdriver.Firefox()else:driver = webdriver.Chrome()driver.get("https://ceshiren.com/")
  • Java 版本
//导入依赖
import org.junit.jupiter.api.BeforeAll;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.safari.SafariDriver;public class EnvTest {public static WebDriver driver;@BeforeAllpublic static void initData() {//获取声明环境变量browserString browserName = System.getenv("browser");//判断browser的值if ("chrome".equals(browserName)) {driver = new ChromeDriver();} else if ("firefox".equals(browserName)) {driver = new FirefoxDriver();} else if ("safari".equals(browserName)) {driver = new SafariDriver();}driver.get("https://ceshiren.com/");}
}

启动的时候设置 browser 使用的浏览器驱动,就可以进行多浏览器的处理

  • Python 版本
browser=firefox pytest test_hogwarts.py
  • Java 版本
browser="chrome" mvn -Dtest=AlertTest test

在 Windows 下比较特殊,要使用 Windows 下的 set 来给变量赋值

  • Python 版本
>set browser=firefox
>pytest test_hogwarts.py
  • Java 版本
>browser="chrome" 
>mvn -Dtest=AlertTest test

需要注意的是,要先将各个浏览器的驱动配置好,具体的配置方式参考 Selenium 安装章节。

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

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

相关文章

C# 继承,抽象,接口,泛型约束,扩展方法

文章目录 前言模拟需求场景模拟重复性高的需求初始类结构继承优化抽象类 需求1:打印CreateTime方法1:使用重载方法2:基类函数方法3:泛型约束方法3.1:普通泛型方法方法3.2:高级泛型约束,扩展方法…

简单工厂模式、工厂方法模式、抽象工厂模式

简介 将实例化代码提取出来,放到一个类中统一管理和维护,达到和主项目依赖关系的解耦,从而提高项目的扩展性和维护性。 工厂模式将复杂的对象创建工作隐藏起来,而仅仅暴露出一个接口供客户使用,具体的创建工作由工厂管…

OJ中常用平衡树,Treap树堆详解

文章目录 Treap定义Treap的可行性Treap的构建节点定义旋转左单旋右单旋旋转的代码实现 插入插入的代码实现 删除遍历查找Treap对权值的扩展Treap对size的扩展扩展size域后的节点定义和旋转,插入,删除操作查询第k小的元素求元素的排名 查询后继、前驱Trea…

qt报错permission denied

写fk项目的时候,报这个错,然后网上查,说的是因为之前运行的qt进程没有关闭,然后我在任务管理器上查看,却没有看见有我正在运行的qt程序,我再出现清除 qmake也不可以,然后我再去删除out目录下的所…

apache-tomcat-9.0.29 安装配置教程

链接:https://pan.baidu.com/s/100buXYpn8w8xjI2KdvHk2Q?pwd2mwc 提取码:2mwc 1.将压缩包解压到指定文件夹下 2.进入bin文件夹下 3.找到setclasspath.bat文件 4.推荐用notepad打开文件,并做如下配置(可解决tomcat启动闪退问题&…

机器学习模型,超级全面总结!

机器学习是一种通过让计算机自动从数据中学习规律和模式,从而完成特定任务的方法。按照模型类型,机器学习可以分为两大类:监督学习模型和无监督学习模型。 附注:除了以上两大类模型,还有半监督学习和强化学习等其他类…

AD9371 官方例程裸机SW 和 HDL配置概述(二)

AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发 ad9371_tx_jesd -->util_ad9371_xcvr接口映射: AD9371 官方例程之 tx_jesd 与 xcvr接口映射 AD9371 官方例程 时钟间的关系与生成 : AD9371 官方…

CLIP Surgery论文阅读

CLIP Surgery for Better Explainability with Enhancement in Open-Vocabulary Tasks(CVPR2023) M norm ⁡ ( resize ⁡ ( reshape ⁡ ( F i ˉ ∥ F i ‾ ∥ 2 ⋅ ( F t ∥ F t ‾ ∥ 2 ) ⊤ ) ) ) M\operatorname{norm}\left(\operatorname{resize}\…

公开IP属地信息如何保护用户的隐私?

公开IP属地信息通常涉及与用户或组织的隐私有关,因此在公开此类信息时需要非常小心,以避免侵犯他人的隐私权。以下是触碰底线的几种情况以及如何保护网络安全和用户隐私: 个人隐私保护: 公开IP属地信息可能泄露用户的物理位置&…

nginx--install

1. ubuntu 1.1 下载并解压依赖 每个包去各自官网下载 stable 版就行。 tar xzvf nginx-1.24.0.tar.gz tar xzvf openssl-3.1.4.tar.gz tar xzvf pcre2-10.42.tar.gz tar xzvf zlib-1.3.tar.gz1.2 配置及安装 参数含义详见 nginx 官网 cd nginx-1.24.0./configure --pre…

【ES专题】ElasticSearch集群架构剖析

目录 前言阅读对象阅读导航要点笔记正文一、ES集群架构1.1 为什么要使用ES集群架构1.2 ES集群核心概念1.2.1 节点1.2.1.1 Master Node主节点的功能1.2.1.2 Data Node数据节点的功能1.2.1.3 Coordinate Node协调节点的功能1.2.1.4 Ingest Node协调节点的功能1.2.1.5 其他节点功能…

第一百六十五回 wheelChooser组件

文章目录 1. 概念介绍2. 使用方法3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了"如何实现Numberpicker"相关的内容,本章回中将介绍 wheelChoose组件.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本…