Как настроить Fluentlenium для работы в разных драйверах браузера?
Я пытаюсь запустить Fluentlenium в разных драйверах браузера. Я думаю, что мне нужно настроить getDefaultDriver() из Fluentlenium, но я не совсем уверен, как это сделать. Любые exmaple коды были бы хороши. Вот мой код, и он не работает. Сообщение, которое я получаю в Eclipse:
"java.lang.IllegalStateException: путь к исполняемому файлу драйвера должен быть задан системным свойством webdriver.chrome.driver; для получения дополнительной информации см. http://code.google.com/p/selenium/wiki/ChromeDriver. последнюю версию можно загрузить с http://code.google.com/p/chromedriver/downloads/list адресу com.google.common.base.Preconditions.checkState(Preconditions.java:176) по адресу org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:105) в org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:75) в org.openqa.selenium.chrome.ver.jromeDrive: Chrome. в com.picklist.tests.PicklistCreate.(PicklistCreate.java:32) в sun.reflect.NativeConstructorAccessorImpl.newInstance0(собственный метод) в sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) в java.lang.reflect.Constructor.newInstance(Constructor.java:525) в org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:195) в org.junit.runners.BlockJUnit4ClassRunner$1.runjj.jpg internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) в org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:241) в org.junit.runner.JunnRunnerCunCUU в org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) в org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) в org.junit.runners.Rarent.Rarent:63) в org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) в org.junit.runners.ParentRunner.access$ 000 000(ParentRunner.java:53) в org.junit.runners.ParentRunner$2.eateate ParentRunner.java:229) в org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) в org.junit.runners.ParentRunner.run(ParentRunner.java:309) в org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) в org.eclipse.jdt.internal.jtionTun.un выполнить (TestExecution.java:38) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunts.RestoteTestRunts.RestoteTun Java:683) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRun19.)
"
Мой код ниже:
public WebDriver driver = new ChromeDriver();
// Overrides the default driver
@Override
public WebDriver getDefaultDriver() {
System.setProperty("webdriver.chrome.driver", "C:/chromeDriver/chromedriver.exe"); // Set for ChromeDriver
//return driver;
return driver;
}
Если я делаю следующий код, он работает, но тогда драйвер больше не определяется, и я получил тонну кода, который использует driver.xxx:
// Overrides the default driver
@Override
public WebDriver getDefaultDriver() {
return new ChromeDriver();
}
3 ответа
Вот как я решил это:
общедоступный драйвер WebDriver;
// Overrides the default driver
@Override
public WebDriver getDefaultDriver() {
System.setProperty("webdriver.chrome.driver", "C:/chromeDriver/chromedriver.exe"); // Set for ChromeDriver
driver = new ChromeDriver();
return driver;
}
Нет getDefaultDriver
во FluentTest вы можете использовать этот код:
@Override
public WebDriver newWebDriver() {
System.setProperty("webdriver.chrome.driver", "path-to-chrome-driver/chromedriver");
Map<String, Object> chromeOptions = new HashMap<String, Object>();
chromeOptions.put("binary", "/usr/bin/chromium-browser");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
return new ChromeDriver(capabilities);
}
Иметь реферат createDriver()
функция, которая переопределяется каждым типом драйвера. Каждый драйвер должен возвращать правильно настроенный драйвер, который затем сохраняется и возвращается при вызове getDefaultDriver();