首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Fluentlenium设置为在不同的浏览器驱动程序中运行?

如何将Fluentlenium设置为在不同的浏览器驱动程序中运行?
EN

Stack Overflow用户
提问于 2013-06-13 00:32:44
回答 3查看 2.8K关注 0票数 3

我正在尝试在不同的浏览器驱动程序中运行Fluentlenium。我想我需要从Fluentlenium配置getDefaultDriver(),但是我不是很确定该怎么做。任何示例代码都会很棒。这是我的代码,它不能工作。我在Eclipse中得到的信息是:

"java.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性设置;有关更多信息,请参见http://code.google.com/p/selenium/wiki/ChromeDriver。最新版本可以从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.ChromeDriver.(ChromeDriver.java:107),com.picklist.tests.PicklistCreate.(PicklistCreate.java:32),sun.reflect的http://code.google.com/p/chromedriver/downloads/list下载。NativeConstructorAccessorImpl.newInstance0(Native方法) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:525) at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:195) at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:244) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:241) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org。junit.runners.ParentRunner.access$000(ParentRunner.java:53)在org.junit.runners.ParentRunner$2.evaluate(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.junit.runner.TestExecution.run(TestExecutionorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)的.java:38)

我的代码如下:

代码语言:javascript
复制
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的代码:

代码语言:javascript
复制
// Overrides the default driver
@Override
public WebDriver getDefaultDriver() {
    return new ChromeDriver();
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-22 05:28:19

下面是我解决这个问题的方法:

公共WebDriver驱动程序;

代码语言:javascript
复制
// 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;
}
票数 3
EN

Stack Overflow用户

发布于 2017-07-12 16:47:28

FluentTest中没有getDefaultDriver,您可以使用以下代码:

代码语言:javascript
复制
@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);
}
票数 1
EN

Stack Overflow用户

发布于 2013-07-27 01:02:10

有一个抽象的createDriver()函数,可以被每种类型的驱动程序覆盖。每个驱动程序都应返回一个正确配置的驱动程序,然后将其存储起来,并在调用getDefaultDriver();时返回

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17070725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档