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

实战演示

  • Python 版本
python 复制代码
#导入依赖
import os
from selenium import webdriver


def test_browser():
    #使用os模块的getenv方法来获取声明环境变量browser
    browser = 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 版本
python 复制代码
//导入依赖
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;
    @BeforeAll
    public static void initData() {
        //获取声明环境变量browser
        String 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 版本
python 复制代码
browser=firefox pytest test_hogwarts.py
  • Java 版本
python 复制代码
browser="chrome" mvn -Dtest=AlertTest test

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

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

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

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

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

相关推荐
I Promise342 小时前
智驾APA_HPA可行驶区域检测算法工程师面试问题整理可参考
算法·面试·职场和发展
企服AI产品测评局2 小时前
2026年Agent元年!深度解析实在Agent未来路线图:从自动化工具到全能数字员工的跃迁
运维·人工智能·ai·chatgpt·自动化
搞科研的小刘选手2 小时前
【西安交通大学主办】第六届人工智能、自动化与高性能计算国际会议 (AIAHPC 2026)
网络·人工智能·机器学习·数据挖掘·自动化·云计算·并行式
迈巴赫车主3 小时前
蓝桥杯21241灯塔java
java·开发语言·数据结构·算法·职场和发展·蓝桥杯·动态规划
酉鬼女又兒3 小时前
零基础入门计算机网络可靠传输:从基本概念到三大实现机制(停止 - 等待 / 回退 N 帧 / 选择重传)全解析
网络·网络协议·计算机网络·考研·职场和发展·计算机外设·求职招聘
luweis3 小时前
企智孪生 ETA (6.5 人机协同:定义“协作界面 (Collaboration UI)”)【杭州联保致新科技有限公司 卢伟舜】
网络·人工智能·科技·程序人生·创业创新·学习方法
Blb1236543 小时前
介电击穿科普:交流击穿与直流击穿有何区别?
人工智能·功能测试·制造·材料工程
Super Scraper3 小时前
如何使用 cURL 发送 JSON:-d、--json 及常见错误的完整指南
人工智能·爬虫·python·自动化·json·mcp
凯瑟琳.奥古斯特4 小时前
力扣1003题C++解法详解
开发语言·c++·算法·leetcode·职场和发展
大学竞赛君4 小时前
第十六届蓝桥杯大赛软件赛决赛 Python 大学 A 组
python·职场和发展·蓝桥杯