【发布时间】:2018-08-06 19:25:33
【问题描述】:
我正在 Windows 10 机器上创建测试(UI 测试)。它们运行良好,但几天前我的老板告诉我,我们需要在 linux 上运行我们的测试。我已下载 linux 驱动程序并将其更改为 System.setProperty("webdriver.chrome.driver", "chromedriver"); 但在尝试运行此测试后我得到了 java.lang.ExceptionInInitializerError(它是最新浏览器的最新驱动程序)。之后我更改了允许我运行测试的代码,但与驱动程序的连接是远程的。我不喜欢这种方式。可能有人知道哪个驱动程序可以在 linux 上运行而无需更改驱动程序初始化部分的代码?
例如 windows驱动初始化:
private static WebDriver driver = new ChromeDriver();
private static WebDriverWait wait = new WebDriverWait(driver, 30);
@Given("^blah blah$")
public void some_method() {
System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
}
linux驱动初始化:
public abstract class InitDrivers{
private static DesiredCapabilities capability = DesiredCapabilities.chrome();
public static WebDriver driver;
static {
try {
driver = new RemoteWebDriver(new URL("http://127.0.0.1:9515"),capability);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
public static WebDriverWait wait = new WebDriverWait(driver, 30);
public class CallDoctorTestStep extends InitDrivers{
@Given("^blah blah$")
public void some_method() throws MalformedURLException{
//System.setProperty("webdriver.chrome.driver","chromedriver.exe");
}
请参阅Selenium NoSuchSession on linux中的解决方案
【问题讨论】:
-
你的linux代码不就是用
selenium-grid吗? -
@ChukUltima 不,我不使用硒网格
标签: java linux selenium selenium-webdriver selenium-chromedriver