当前位置: 首页 > 知识库问答 >
问题:

如何设置Fluentlenium在不同的浏览器驱动中运行?

施俊哲
2023-03-14

我正尝试在不同的浏览器驱动中运行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(driverservation.java:105)在org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeRiverService.java:75)在org.openqa.selenium.ChromeDriver.(ChromeDriver.java:107),在sun.reflect.NativeConstructorAccessorImpl。sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)上的newInstance0(本机方法)和java.lang.reflect.Constructor.newInstance(DelegatingConstructorAccessorImpl.java:45)上的newInstance和org.junit.runner.BlockJUnit4ClassRunner.createTest(blockJnit4ClassRunner.java:195)上的org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(blockjunitclassrunner.java:244)在org.junit.internal.runner.model.ReflectiveCallable.run(reflective callable.java:12)在org.junit.runners.blockjuntitclassrunner.methodBlock(BlockJUnit4ClassRunner.java:241)在org.junit.runner.BlockJUnit4ClassRunner.runChild(blockjunt4classrunner.java:50)在org.junt.runners.ParentRunner$3.run(ParentRunner.java:238)在org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)在org.junit.runners.parentrunnelner.org.runner.访问$000(parentunner.java:53),在org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)在org.junit.internal.runners.statements.RunAfters.evaluate(runafter.java:27)在org.junit.runner.ParentRunner.run(ParentRunner.java:309)在组织.eclipse.jdt.international.junit4.runner.JUnit4TestReference.runorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)位于org.eclipses.jdts.interior.junit.runner.运行测试(RemoteTestRunner.java:683)位于org.eclipse.jdt.interiorjunit.runner.runner.run(RemoteTestRunner.java:390),位于org

"

我的代码如下:

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的od代码:

// Overrides the default driver
@Override
public WebDriver getDefaultDriver() {
    return new ChromeDriver();
}

共有3个答案

姜俊民
2023-03-14

具有由每种类型的驱动程序重写的抽象创建驱动程序() 函数。每个驱动程序都应返回正确配置的驱动程序,然后存储该驱动程序,并在调用 getDefaultDriver()返回该驱动程序。

申博厚
2023-03-14

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

@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);
}
燕志学
2023-03-14

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

公共网络驱动程序驱动程序;

// 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;
}
 类似资料:
  • 我用Java创建了一个简单的Cumber测试。基本上,当您运行功能文件时,它会转到一个网站,选择一个按钮并将您带到该页面。我想做的是通过BrowserStack运行这个测试。不仅如此,还可以在Browserstack中的多个浏览器/设备上并行运行此单一功能文件。e、 g在五个不同的浏览器/设备上运行相同的测试。

  • 我将Selenium与Python Chrome webdriver一起使用。在我的代码中,我使用了: 将webdriver指向webdriver可执行文件。有没有办法将webdriver指向Chrome浏览器二进制文件? https://sites.google.com/a/chromium.org/chromedriver/capabilities他们有以下产品(我想这就是我要找的): 有人举

  • 最近我换了电脑,从那以后我不能用硒启动chrome。我也尝试过Firefox,但浏览器实例就是无法启动。 我得到以下错误: 我安装了最新的chrome版本和chrome驱动程序 编辑:尝试@b0sss解决方案后,我收到以下错误。

  • 由于某种原因,当我在工作中运行测试时,浏览器被最大化,但是当我在家运行测试时,它只打开了大约50%宽度的浏览器窗口。这导致向下滚动时出现一些差异,等等。所以我希望它在每台运行测试的机器上打开一个同样大小的浏览器窗口。做这件事的最好方法是什么? (我已经为其他语言找到了一些答案,但我还不能将它们应用于JavaScript) 添加 不执行任何操作(显然,Google Chrome不支持<code>wi

  • 每个类都包含@Test方法,并扩展了设置@BeForeClass参数(通过DesiredCapabilities)以在BrowserStack机器上运行套件的BaseClass: 所以,你能帮我做下一件事吗:1)我需要创建配置文件,并使用它的参数在BrowserStack中的不同浏览器上运行我的TestSuite。任何。xml文件的示例都将受到欢迎。2)以及如何修改TestSuite.class以

  • 问题内容: 我想在无头模式下为所有3种浏览器Chrome,Firefox和IE运行脚本 以下是Chrome的代码: 注意:其工作正常 Firefox: 注意:其工作正常 IE浏览器: 同样,我想在IE中使用选项执行 问题答案: IE不支持无头模式(因为如今IE尚未接受任何形式的更新或改进。)。 但是您可以使用trifle.js,这是一种浏览器,可以将其以无头模式模拟某些IE版本,因为它被编码为Ph