当前位置: 首页 > 面试题库 >

如何配置Selenium Webdriver使用自定义的Firefox安装程序进行测试?

长孙正卿
2023-03-14
问题内容

我正在使用Ubuntu 11.04和Selenium 2.9.0,这是在根pom中进行配置的方式:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>2.9.0</version>
    <scope>test</scope>
</dependency>

尝试运行测试时,出现异常:

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
*** LOG addons.xpi: startup
*** LOG addons.xpi: Ignoring file entry whose name is not a valid add-on ID: > /tmp/anonymous3804893394247066972webdriver-profile/extensions/webdriver-staging
*** LOG addons.xpi: checkForChanges
*** LOG addons.xpi: No changes found

    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:95)
    ....

就我而言,问题是硒使用的Firefox驱动程序与浏览器版本不兼容。考虑到firefox发布的频繁更新,很难维护我的本地测试环境。

因此,我决定安装一个具有我所知的最新兼容版本的静态Firefox,并与它一起使用硒,同时保留默认的Firefox(我不能删除它)。

因此,我不确定如何设置硒配置以使其与静态firefox一起使用。可能我必须将我的应用程序配置为接收firefox二进制文件的路径,以供驱动程序使用?我想知道是否还需要其他任何东西。

**编辑

我正在使用配置属性来初始化适当的webdriver:

public abstract class SeleniumTestBase {

    ...

    public final void setUp() throws Exception {
        String driverClass = getConfigurationProperty("selenium.webDriverClass");
        driver = (WebDriver) Class.forName(driverClass).newInstance();
        ...
        doSetUp();
    }

    public void doSetUp() {
    }

    ...
}

"selenium.webDriverClass"属性可由pom.xml管理,因此不同的配置文件可以具有不同的值。当前是要实例化的驱动程序类的FQN。


问题答案:

只要我知道java命令

WebDriver driver = new FirefoxDriver();

将在您的计算机上运行已安装的Firefox浏览器。

但是在http://selenium.googlecode.com/svn/trunk/docs/api/java/index.html上阅读JavaDoc时,我意识到可以使用多种方法来覆盖它:

FirefoxBinary binary = new FirefoxBinary(new File("path/to/binary"));
FirefoxProfile profile = new FirefoxProfile();
WebDriver driver = new FirefoxDriver(binary, profile);


 类似资料:
  • 问题内容: 我正在使用Ubuntu 11.04和Selenium 2.9.0,这是在根pom中进行配置的方式: 尝试运行测试时,出现异常: 就我而言,问题是selenium使用的Firefox驱动程序与浏览器版本不兼容。考虑到firefox发布的频繁更新,很难维护我的本地测试环境。 因此,我决定安装一个具有我所知的最新兼容版本的静态Firefox,并与它一起使用selenium,同时保留默认的Fi

  • 为Electron应用编写自动测试, 你需要一种 "驱动" 应用程序的方法。 Spectron 是一种常用的解决方案, 它允许您通过 WebDriver 模拟用户行为。 当然,也可以使用node的内建IPC STDIO来编写自己的自定义驱动。 自定义驱动的优势在于,它往往比Spectron需要更少的开销,并允许你向测试套件公开自定义方法。 我们将用 Node.js 的 child_process

  • 为Electron应用编写自动测试, 你需要一种 "驱动" 应用程序的方法。 Spectron is a commonly-used solution which lets you emulate user actions via WebDriver. 当然,也可以使用node的内建IPC STDIO来编写自己的自定义驱动。 自定义驱动的优势在于,它往往比Spectron需要更少的开销,并允许你向

  • 我使用jpack打包了我的java应用程序。当我使用打包的安装程序安装它时,安装后的目录始终是

  • 有没有任何一个测试REST API的使用硒网络驱动程序Maven TestNG。请分享信息或样本项目

  • 我正在寻找有关如何改进当前测试类(以下示例)的设计的建议,该类依赖于具有自定义配置的。我通常使用构造函数注入来注入一个在整个应用程序中一致的HttpClient,但是,因为这是在类库中,所以我不能依赖库的使用者来正确设置。 null 这个设置对我来说似乎相当复杂,我希望有人能提出一个改进,但我知道这可能是相当主观的,所以如果有任何既定的模式或设计规则要遵循在这种情况下,我会非常感谢听到他们。 我包