如何通过 System.setProperty() 启动多个版本的 Geckodriver

2023-12-02

我不知道我是否在监督某些事情,但是是否可以在同一个 JVM 中使用多个 geckodriver 版本?

问题在于

System.setProperty("webdriver.gecko.driver", "path of the geckodriver1");
driver1 = new FirefoxDriver();

System.setProperty("webdriver.gecko.driver", "path of the geckodriver2");
driver2 = new FirefoxDriver();

我将在其中定义系统属性。对于单个实例,这没有问题并且工作正常,但是我如何使用另一个 geckodriver 定义 FirefoxDriver。进程将并行运行,因此全局设置会相互干扰。

我知道,您可以使用相同的驱动程序启动多个 Firefox 会话,但我需要支持不同的 Firefox 版本,因此我也在寻找具有多个 geckodrivers 的解决方案。

谢谢指教。


系统属性

一个程序可以使用系统属性对象在其整个生命周期中保持其配置。Selenium's java客户端本身使用特性对象维护自己的配置。这System类维护一个特性描述当前工作环境配置的对象。系统属性包括有关当前用户、Java 运行时的当前版本以及用于分隔文件路径名组成部分的字符的信息。

因此,您将无法使用multiple Gecko驱动程序单个程序中的版本。


示范

提取一些最重要的系统属性的演示:

  • 代码块:

    package Java_Experiments;
    
    public class system_getProperty {
    
        public static void main(String[] args) {
    
            System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
            System.out.println(System.getProperty("webdriver.chrome.driver"));
            System.out.println(System.getProperty("subliminal.message", "Selenium WebDriver!"));
            System.out.println("Java Runtime Environment version: "+System.getProperty("java.version"));
            System.out.println("Java Runtime Environment vendor: "+System.getProperty("java.vendor"));
            System.out.println("Java vendor URL: "+System.getProperty("java.vendor.url"));
            System.out.println("Java installation directory: "+System.getProperty("java.home"));
        }
    }
    
  • 控制台输出:

    C:\Utility\BrowserDrivers\chromedriver.exe
    Selenium WebDriver!
    Java Runtime Environment version: 1.8.0_172
    Java Runtime Environment vendor: Oracle Corporation
    Java vendor URL: http://java.oracle.com/
    Java installation directory: C:\Program Files\Java\jdk1.8.0_172\jre
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过 System.setProperty() 启动多个版本的 Geckodriver 的相关文章

随机推荐