硒化物和博尼加西亚
Selenide and bonigarcia
我正在尝试将 Selenide 和 bonigarcia 与多个网络驱动程序一起使用,例如 Chrome、Mozilla、Edge 等。
这就是我所做的:
public static Selenide driver;
public static void runBrowser(String browserName, String url) throws Exception {
if(browserName.equals("Chrome")) {
WebDriverManager.chromedriver().browserVersion(browserConfiguration.chromeVersion).setup();
Configuration.startMaximized = true;
driver.open(url);
}
else if(browserName.equals("Firefox")) {
WebDriverManager.firefoxdriver().browserVersion(browserConfiguration.firefoxVersion).setup();
Selenide.open(url);
}
else if(browserName.equals("Edge")) {
WebDriverManager.edgedriver().browserVersion(browserConfiguration.edgeVersion).setup();
driver.open(url);
} else {
throw new Exception("Something went wrong opening browser");
}
}
但是,当我尝试使用“Firefox”或“Edge”参数调用该方法时,它总是在 chrome 上运行。因此,每次我调用该方法时,chrome 的 Web 驱动程序都是 运行。
我用 Selenium 做到了,它们之间的区别在于我使用 WebDriver.get(url)
而不是 Selenide.open(url)
,当我用“Firefox”或“Edge”调用方法时它工作正常" 参数.
有什么想法吗?
**编辑:**
我添加了 Configuration.browser = FirefoxDriverFactory.class.getName();
,现在看起来像这样:WebDriverManager.firefoxdriver().browserVersion(browserConfiguration.firefoxVersion).setup(); Configuration.browser = FirefoxDriverFactory.class.getName(); Selenide.open(url);
它将打开我想要的任何浏览器,Chrome、Mozilla、Edge 等。
但是,不知何故,我不认为这是一个真正的解决方案。我什至不知道我对添加 FirefoxDriverFactory.class.getName()
做了什么以及为什么它现在起作用了。
Selenide 已经包含来自 bonigarcia 的 WebDriverManager。
您可以选择浏览器
Configuration.browser = "firefox";
或设置 SystemProperty selenide.browser,例如-Dselenide.browser=firefox
您不需要任何工厂、WebDriverManager 调用等
我正在尝试将 Selenide 和 bonigarcia 与多个网络驱动程序一起使用,例如 Chrome、Mozilla、Edge 等。 这就是我所做的:
public static Selenide driver;
public static void runBrowser(String browserName, String url) throws Exception {
if(browserName.equals("Chrome")) {
WebDriverManager.chromedriver().browserVersion(browserConfiguration.chromeVersion).setup();
Configuration.startMaximized = true;
driver.open(url);
}
else if(browserName.equals("Firefox")) {
WebDriverManager.firefoxdriver().browserVersion(browserConfiguration.firefoxVersion).setup();
Selenide.open(url);
}
else if(browserName.equals("Edge")) {
WebDriverManager.edgedriver().browserVersion(browserConfiguration.edgeVersion).setup();
driver.open(url);
} else {
throw new Exception("Something went wrong opening browser");
}
}
但是,当我尝试使用“Firefox”或“Edge”参数调用该方法时,它总是在 chrome 上运行。因此,每次我调用该方法时,chrome 的 Web 驱动程序都是 运行。
我用 Selenium 做到了,它们之间的区别在于我使用 WebDriver.get(url)
而不是 Selenide.open(url)
,当我用“Firefox”或“Edge”调用方法时它工作正常" 参数.
有什么想法吗?
**编辑:**
我添加了 Configuration.browser = FirefoxDriverFactory.class.getName();
,现在看起来像这样:WebDriverManager.firefoxdriver().browserVersion(browserConfiguration.firefoxVersion).setup(); Configuration.browser = FirefoxDriverFactory.class.getName(); Selenide.open(url);
它将打开我想要的任何浏览器,Chrome、Mozilla、Edge 等。
但是,不知何故,我不认为这是一个真正的解决方案。我什至不知道我对添加 FirefoxDriverFactory.class.getName()
做了什么以及为什么它现在起作用了。
Selenide 已经包含来自 bonigarcia 的 WebDriverManager。
您可以选择浏览器
Configuration.browser = "firefox";
或设置 SystemProperty selenide.browser,例如-Dselenide.browser=firefox
您不需要任何工厂、WebDriverManager 调用等