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

How to initiate multiple versions of Geckodriver through System.setProperty()

我不知道我是否在监督某些事情,但是否可以在同一个 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 Session,但我需要支持不同的 Firefox 版本,因此我也在寻找具有多个 geckodriver 的解决方案。

谢谢指教。

系统属性

程序可以使用 System Properties objects to maintain its configuration throughout it's lifespan. 's 客户端本身使用 Properties 对象来维护自己的配置。 System class 维护一个 Properties 对象,描述当前工作环境的配置。系统属性包括有关当前用户的信息、Java 运行时的当前版本以及用于分隔文件路径名组成部分的字符。

因此,您将无法在单个程序中使用 多个 GeckoDriver 版本。


示范[​​=23=]

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

  • 代码块:

    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