selenium - 如何设置 Fluentlenium 以在不同的浏览器驱动程序中运行?

标签 selenium webdriver fluentlenium

我正在尝试在不同的浏览器驱动程序中运行 Fluentlenium。我想我需要从 Fluentlenium 配置 getDefaultDriver(),但我不太确定该怎么做。任何示例代码都会很棒。这是我的代码,它不工作。我在 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.ChromeDriver.(ChromeDriver.java:107) 在 com.picklist.tests.PicklistCreate.(PicklistCreate.java:32) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0( native 方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.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.runReflectiveCall(BlockJUnit4ClassRunner.java:244) 在 org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 在 org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:241) 在 org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) 在 org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) 在 org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) 在 org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) 在 org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) 在 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(TestExecution.java:38) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

我的代码如下:

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();
}

最佳答案

我是这样解决的:

公共(public) 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;
}

关于selenium - 如何设置 Fluentlenium 以在不同的浏览器驱动程序中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17070725/

相关文章:

java - 切换帐户时的 Selen 身份验证

report - 测试断言报告并继续

java - Selenium :使用getLocation和getSize与Element交互

r - 如何使用 R 编程发送键元素?

python - 使用 Selenium 时如何选择要启用的 Chrome 扩展

java - 通过 maven 运行 testng.xml 出现错误

java - Selenium/Java 退出 while 循环

来自网站的 Python 抓取表?

python , Selenium ,chromedriver 'selenium.common.exceptions.WebDriverException: Message: u' chrome 无法访问

java - 我的设备已获得授权,但在我运行登录测试后,它说要再次授权 -QA Tester