Skip to content

Selenium多浏览器处理

简介

通过对代码的改造,实现自动化脚本对多浏览器的支持。

通过传递不同的参数测试不同的浏览器,用来实现浏览器的兼容性测试。

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

实战演示

演示代码

  • Pyhton:
#导入依赖
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:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;

import java.util.concurrent.TimeUnit;

public class TestBrowser {
    public static void main(String[] args) {
        // 获取环境变量 browser
        String browser = System.getenv("browser").toLowerCase();

        // 初始化 WebDriver
        WebDriver driver;
        if ("headless".equals(browser)) {
            driver = new PhantomJSDriver();
        } else if ("firefox".equals(browser)) {
            driver = new FirefoxDriver();
        } else {
        //此处填写你的浏览器驱动地址
            System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
            driver = new ChromeDriver();
        }

        // 打开网页
        driver.get("https://ceshiren.com/");

        // 关闭浏览器后退出
        driver.quit();
    }
}

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

browser=firefox pytest test_hogwarts.py

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

>set browser=firefox
>pytest test_hogwarts.py

1586940594052.png