如何配置 selenium webdriver 以使用自定义 Firefox 设置进行测试?

2023-11-23

我正在使用 Ubuntu 11.04 和 selenium 2.9.0 以下是它在我的 root 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)
    ....

据我谷歌搜索,问题是selenium使用的firefox驱动程序与浏览器版本不兼容。考虑到 Firefox 发布的频繁更新,维护我的本地测试环境将很困难。

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

所以,我不知道如何设置我的 selenium 配置以使其与静态 Firefox 一起工作。也许我必须配置我的应用程序以接收 firefox 二进制文件的路径以供驱动程序使用?我想知道是否还需要其他什么。

** Edit

我正在使用配置属性来初始化正确的网络驱动程序:

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

    ...
}

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


只要我知道java命令

WebDriver driver = new FirefoxDriver();

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

但阅读 JavaDochttp://selenium.googlecode.com/svn/trunk/docs/api/java/index.html我意识到可以有办法覆盖它:

FirefoxBinary binary = new FirefoxBinary(new File("path/to/binary"));
FirefoxProfile profile = new FirefoxProfile();
WebDriver driver = new FirefoxDriver(binary, profile);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何配置 selenium webdriver 以使用自定义 Firefox 设置进行测试? 的相关文章

  • Java Sqlite Gradle

    我对 gradle 和 java 还很陌生 我有一个使用 sqlite 的项目 它通过 intellij idea 运行良好 但我无法从终端运行它 它会抛出异常 java lang ClassNotFoundException org sq
  • Java中定义类型后同时初始化多个变量?

    这里需要一些语法方面的帮助 我正在尝试在定义类型后重新初始化多个变量 例如 int bonus sales x y 50 这工作正常 但是我想稍后在程序中将不同的值放入其中一些变量中 但我收到语法错误 bonus 25 x 38 sales
  • 在哈希图中存储字符和二进制数

    我正在尝试存储字母到二进制数的映射 这是我的映射 h 001 i 010 k 011 l 100 r 101 s 110 t 111 为此 我创建了一个哈希映射并存储了键值对 我现在想显示给定句子的相应二进制值 这是我的代码 package
  • 如果按下 Esc 则中断循环

    我用 JAVA 语言编写了一个程序 它使用 Scanner 类接受来自控制台的输入 现在我想将此功能添加到我的代码中 以便在用户按下 Esc 按钮时存在循环 while 到目前为止 我认为键盘类可以帮助我 但它就像扫描仪一样 我尝试使用事件
  • 动画图像视图

    目前我正在开发一款游戏 这是我的游戏的详细信息 用户应选择正确的图像对象 我希望图像从左到右加速 当他们到达终点时 他们应该再次出现在活动中 这是我正在处理的屏幕截图 我有 5 个图像视图 它们应该会加速 您有此类动画的示例代码吗 非常感谢
  • 如何屏蔽 Protobuf 中的某些字段

    我找不到一种方法来屏蔽 protobuf 结构中的某些字段 我确实阅读了有关 FieldMaskUtil 的内容并尝试了几个示例 但它似乎做了相反的操作 即复制 FieldMask 中提到的字段 这与我想要的不同 这是示例结构和相应的测试代
  • 通过 JNI 从 Applet 调用 DLL

    我有一个 概念验证 的作品 它跨越了一些不熟悉的领域 我的任务是将 EFTPOS 机器连接到在内联网浏览器中作为小程序运行的应用程序 我暂时忽略了 EFTPOS dll 并用我选择的语言 Delphi 创建了一个简单的 JNI 修饰的 DL
  • 此版本不符合 Google Play 64 位要求,添加库后仍然出现错误

    我正在 Play 商店上传一个视频编辑器应用程序 其中包含带有一些本机代码的库 所以我通过将其添加到 gradle 来使其兼容 64 位 ndk abiFilters armeabi v7a arm64 v8a x86 x86 64 添加了
  • 带有面板的 Java Swing JToolbar:外观和感觉

    我有一个JToolbar其中包含多个JPanels 需要 因为我希望每个都有特定的边界 不幸的是 外观管理器无法识别JPanels属于工具栏和JButtons因此 渲染器与普通按钮一样 即没有工具栏上的特殊鼠标悬停效果 更换JPanels
  • 更改 JTextPane 的大小

    我是Java新手 刚刚在StackOverflow中找到了这段代码 ResizeTextArea https stackoverflow com questions 9370561 enabling scroll bars when jte
  • 如何使用 BufferedReader 对象从 Java 中的一行读取多个整数值?

    我正在使用 BufferedReader 类读取 Java 程序中的输入 我想读取用户的输入 该用户可以在带空格的单行中输入多个整数数据 我想读取整数数组中的所有这些数据 输入格式 用户首先输入他 她想要输入的数字数量 然后在下一行中使用多
  • 无法在 Mac OS X 上启动应用程序 我收到错误 LSOpenURLsWithRole() 应用程序失败,错误为 -10810

    问题 我正在尝试启动一个应用程序 遗传网络分析仪 http www genostar com category products gna 但它默默地失败了 使用时open gna app产生以下错误消息 LSOpenURLsWithRole
  • 中间件 API 的最佳实践是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们正在开发一个中间件 SDK 采用 C 和 Java 语言 供游戏开发人员 动画软件开发人员 阿凡达开
  • 如何在命令提示符中检查 JAVA_OPTS 值?

    我们的应用程序部署 JBoss 服务器然后抛出错误 PermGen space 然后在 jboss bat 和配置文件中设置 permgen 变量中的 java OPTS JAVA OPTs 中是否有值 assige 如何检查 如何在命令提
  • 如何获取 Android 中临时文件的文件大小?

    如果我使用 openFileOutput 创建并写入临时文件 写入完成后如何获取文件大小 我希望这可以帮助你 File file new File selectedPath int file size Integer parseInt St
  • 无法仅在控制台中启动 androidstudio

    你好 我的问题是下一个 我下载了Android Studio如果我去 路径 android studio bin 我执行studio sh 我收到以下错误 No JDK found Please validate either STUDIO
  • 使用 Cucumber Scenario Outline 处理 Excel 电子表格

    如果可能的话 我试图找到一种更优雅的方法来处理从与 Excel 电子表格行 第 n 个 相关的 Cucumber Scenario Outline 中调用第 n 个数字 目前 我正在使用迭代编号来定义要从中提取数据的 Excel 电子表格的
  • 如何使用maven创建基于spring的可执行jar?

    我有一个基于 Maven 的 Spring WS 客户端项目 我想将其打包为单个 jar 在eclipse中 一切运行正常 当我尝试将其打包为可执行 jar 时 我收到 ClassNotFound 异常 因为 Spring jar 未包含在
  • JPA - 非主键字段上的 @OneToOne 关系不起作用

    我有一个 Spring Data JPA 后端 使用 Hibernate 作为 ORM 实现 这是模型 Person MailConfig id PK uid PK FK Person uid uid Entity
  • SWT - 与操作系统无关的获取等宽字体的方法

    SWT 有没有一种方法可以简单地获得跨各种操作系统的等宽字体 例如 这适用于 Linux 但不适用于 Windows Font mono new Font parent getDisplay Mono 10 SWT NONE 或者我是否需要

随机推荐

  • 如何在不使用故事板的情况下创建 UICollectionView?

    我在网上找到了一些不错的 UIcollectionview 教程 http www raywenderlich com 22324 beginning uicollectionview in ios 6 part 12 http ashfu
  • AppBarLayout 以编程方式更改偏移量

    如何以编程方式更改 AppBarLayout 的偏移量 当 Activity 首次加载时 我希望 AppBarLayout 部分展开 有一定的偏移量 然后用户可以进一步展开它或折叠它 当前的行为是当 Activity 首次加载时它完全展开
  • 交换 gnuplot 中的轴

    我想知道这个有一段时间了 它可能已经在gnuplot但我一直无法在网上找到信息 当您有数据文件时 可以交换轴并将 虚拟变量 例如 x 在 gnuplot 的帮助术语中 分配给垂直轴 plot data u 1 2 x goes to hor
  • 使用事务进行rails数据库迁移

    我刚刚学习 Rails 并开始了有关数据库迁移的部分 我构建了 2 个迁移 并且都成功迁移了 向下迁移 最新的迁移 即第一个运行的迁移 由于我的代码中的拼写错误而失败 我修复了拼写错误 但此后迁移仍然失败 我发现原因是向下迁移在更改中途中止
  • Laravel 5.6 中的 url() 与 Route()

    就我而言 Laravel 5 6 中的 url 和 route 有什么区别 下面给出了两个 URI a href Create post 1 a and a href Create post 2 a 我在 web php 中定义它们如下 R
  • 为什么需要 useRef 而不是可变变量?

    我读过了useEffect 完整指南 逆流而上反应过度 该示例表明 如果我们想获取最新的count 我们可以用useRef保存可变变量 并在异步函数中获取它 function Example const count setCount use
  • Android 在回收站视图中水平自动滚动

    我在列表中有两个值 并使用回收器视图在水平列表视图中显示它们 这里我需要无限地自动滚动水平列表 我尝试使用下面的代码但没有结果 Horizo ntalScrollView 添加新视图时自动滚动到结束 请在此处查看解决方案 https git
  • 您可以在 List 中的位置 0 处插入吗?

    我需要在集合的开头插入一个对象 我的收藏是列表类型 我怎样才能做到这一点 当然可以 例如一个通用的字符串列表 List
  • 如何让 Visual Studios 构建系统了解托管 dll 的非托管依赖关系?

    构建托管代码时 Visual Studio 正确 并递归地 将引用的托管项目的 dll 复制到正在构建的项目的输出文件夹中 但是 如果这些引用之一是依赖于非托管 DLL 的托管 DLL 则这些非托管 DLL 不会复制到输出文件夹 即使它们的
  • :after 伪元素的 CSS3 转换

    看看这个小提琴 http jsfiddle net sajYc 过渡为 after伪元素在 Firefox 中工作 但在基于 webkit 的浏览器中失败 知道这是否会在未来的版本中出现吗 有什么非 jquery 过度杀伤的解决方法吗 基本
  • 为什么 :before 在 safari 中看不到?

    我有一个在 Chrome 中运行良好的代码 menu ul list style position inside list style type none display block margin 0 auto padding 0 menu
  • 在单独的 .swift 文件中使用扩展名

    寻找在单独的文件中使用 Swift 扩展的方法或替代解决方案 仅当扩展被写入正在使用的同一文件中时 创建扩展才有效 这是一个有效的 ViewController swift 示例 import UIKit var TestHelper St
  • C++ 将向量转换为向量

    什么是一个好的干净的方法来转换std vector
  • 扁平化 TypeScript 类型或界面?

    作为一名 TypeScript 开发人员 我已经习惯了在使用时出现 重复标识符 问题 d ts files 最近 发生这种情况是因为我需要两种打字 d ts文件 Angular 2 和 Parse Angular 2 不分发它们的 d ts
  • WordPress:如何将 url GET 参数添加到我的主菜单项

    我正在尝试将 URL GET 参数添加到 Wordpress 中的主菜单项之一 但我不知道如何操作 因此 我的方法是检测菜单项上的单击事件 然后通过 AJAX 将参数传递到我的 php 页面 该页面将处理根据需要传递的值 我的主要问题是 看
  • 完整克隆是子模块添加分支的唯一方法吗?

    我想添加一个引用特定 非主 分支的子模块 以下只会抓取 master 分支 因为 depth 1 所以命令必然会失败 git submodule add b myBranch depth 1 email protected some lar
  • 如何使用 AngularJS 并调用 MVC API 下载文件?

    我正在使用 AngularJS 并且有一个 MVC 4 API 它返回带有附件的 HttpResponseMessage var result new MemoryStream pdfStream 0 pdfStream Length Po
  • Numpy 温度计编码

    我正在尝试使用 numpy 优化的内置函数来生成温度计编码 温度计编码基本上是生成n如果 1 在给定长度内 则为数量 例如 在 8 长度中 3 将被编码为 1 1 1 0 0 0 0 0 使用 numpy 根据整数输入生成该向量基本上是切片
  • 向已包含 n 个元素的二叉堆插入 n 个元素的渐近时间复杂度

    假设我们有一个包含 n 个元素的二叉堆 并且希望再插入 n 个元素 不一定是一个接一个 总共需要多少时间 我认为它是 theta n logn 因为一次插入需要 logn 给定 n 个元素的堆以及要插入的 n 个元素 所以最终会有2 n个元
  • 如何配置 selenium webdriver 以使用自定义 Firefox 设置进行测试?

    我正在使用 Ubuntu 11 04 和 selenium 2 9 0 以下是它在我的 root pom 中的配置方式