向 Selenium2(WebDriver) chrome 驱动程序添加扩展

2023-12-11

我使用下面的代码使用 webdriver (selenium 2) 启动 chrome

            Map<String, String> mobileEmulation = new HashMap<String, String>();
            mobileEmulation.put("deviceName", "BlackBerry PlayBook");

            Map<String, Object> chromeOptions = new HashMap<String, Object>();
            chromeOptions.put("mobileEmulation", mobileEmulation);
            DesiredCapabilities capabilities = DesiredCapabilities.chrome();
            capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
            driver = new ChromeDriver(capabilities);

如何在保留上述选项的同时加载 Chrome 扩展程序?


终于想通了!

Per ChromeDriver 功能页面,您需要将 .crx 文件转换为 base-64 编码的字符串。所以最终的答案看起来像这样:

ArrayList<String> ext = new ArrayList<>();
extensionLocation = extensionDir + sep + extensionName + ".crx";
extension = new File(extensionLocation);
if (extension.exists() && !extension.isDirectory()) {
    ext.add(Data.base64Encoder(extensionLocation));
}
chromeOptions.put("extensions", ext);

Where Data.base64encoder()是我的自定义编码方法。有很多示例说明如何根据您运行的 Java 版本执行此操作。基本上向其发送位置,读取二进制文件,然后返回一个字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向 Selenium2(WebDriver) chrome 驱动程序添加扩展 的相关文章

  • Java:为什么.class文件中的方法类型包含返回类型,而不仅仅是签名?

    class 文件的常量池中有一个 NameAndType 结构 它用于动态绑定 该类可以 导出 的所有方法都被描述为 签名 返回类型 喜欢 getVector Ljava util Vector 当某些 jar 中方法的返回类型发生更改时
  • Android Studio 与 Google Play 服务的编译问题

    我正在运行 Android Studio 0 8 4 并在 Android Studio 0 8 2 上尝试过此操作 我正在运行 Java JDK 1 8 0 11 并尝试使用 JDK 1 8 0 05 每当我尝试构建我的 android
  • 如何杀死 Java Future?

    我正在开发的服务使用 Future 来并行运行多个任务 每个任务最多可能需要一分钟才能完成 然而 外部库似乎有问题 因为在某些情况下 2 的时间 它不会返回 在这些情况下 我想给出 2 分钟的等待时间 如果还没有返回 我想杀死 future
  • 当我们使用赋值而不是比较时,如何评估 if/while 条件?

    我在学习 Java 的 OCA OCP 时发现了这个令人惊讶的事情 下面是第一段代码 其中 if 测试条件 部分 让我惊讶 public class BooleanIf public static void main String args
  • 用于制作代码编辑器的 JavaFX 相当于 JSyntaxPane 的什么?

    以前在 Swing 中 我使用过JSyntaxPane用于制作一个小型 Java 源代码编辑器 为了练习 我决定用 JavaFX 重做整个项目并添加对更多语言的支持 最好是尽可能多 不过好像没有什么类似的JSyntaxPane 一些研究让我
  • Google 表格使用 API 密钥而不是 client_secret.json

    In the QuickStart java示例Java 快速入门 https developers google com sheets api quickstart java他们使用OAuth client ID识别该应用程序 这会弹出一
  • 如何在正则表达式中编写可选单词?

    我想编写一个识别以下模式的 java 正则表达式 abc def the ghi and abc def ghi 我试过这个 abc def the ghi 但是 它没有识别第二种模式 我哪里出错了 abc def the ghi 删除多余
  • 使用正则表达式验证电子邮件的最大长度

    我找到了用于电子邮件验证的正则表达式 a z0 9 a z0 9 a z0 9 a z0 9 a z 2 4 我希望电子邮件的最大长度为 20 个字符 因此我将其更改为 a z0 9 a z0 9 a z0 9 a z0 9 a z 2 4
  • 如何使用 aether 从 Java 找到最新版本的 Maven 工件?

    他们的文档非常薄弱 我无法弄清楚 我找到了部分答案here https stackoverflow com questions 27428068 how to retrieve the latest also snapshot versio
  • 在 doxygen 中使用 @see 或 @link

    我之前用 Javadoc 记录并使用了标签 see link or see foo and link foo 在我的描述中链接到其他课程 现在我尝试了doxygen 似乎这些标签不兼容 如果我运行 doxygen 完整的标签将被简单地解释为
  • java:为什么主线程等待子线程完成

    我有一个简单的java程序 主线程 main 创建并启动另一个线程t class T extends Thread Override public void run while true System out println Inside
  • 在 Eclipse 中删除空块之前的新行

    我更喜欢奥尔曼式 http en wikipedia org wiki Brace style Allman style大括号 例如 if foo magical prancing unicorn stuff 而不是 if foo unma
  • 生成一定长度的所有排列

    假设我们有一个字母表 abcdefghiklimnop 如何以有效的方式以五个一组的形式重复该字母表来递归生成排列 几天来我一直在为此苦苦挣扎 任何反馈都会有帮助 本质上这与 生成给定字符串的所有排列 https stackoverflow
  • java.exe 以非零退出值 1 结束

    只是为了开始 我并不是真正尝试从 Android 中的 xlsx 文件中读取单元格 我已经尝试了几乎所有我在 Google 上搜索到的内容 但是每次 在两台不同的 PC 上 都是 Java 1 7 0 79 当我尝试构建 运行 这个应用程序
  • 从字符串中删除重音符号

    Android 中有没有什么方法 据我所知 没有 java text Normalizer 可以从字符串中删除任何重音 例如 变成 eau 如果可能的话 我想避免解析字符串来检查每个字符 java text NormalizerAndroi
  • 为休息服务实施 JUnit 测试

    我必须为我的休息服务实现一些 JUnit 测试 例如 这是我的休息服务之一 Path dni fe public class HelloWorld POST Path home Consumes MediaType APPLICATION
  • 如何获取 JDBC 中 UPDATE 查询影响的所有行?

    我有一项任务需要使用更新记录PreparedStatement 一旦记录被更新 我们知道更新查询返回计数 即受影响的行数 但是 我想要的不是计数 而是受更新查询影响的行作为响应 或者至少是受影响的行的 id 值列表 这是我的更新查询 UPD
  • 在 Kotlin 中声明静态属性?

    My Java code public class Common public static ModelPengguna currentModelPengguna public class Common companion object v
  • 用于生成 ISO 文件的 Maven 插件

    有没有可以生成ISO镜像的maven插件 我需要获取一些模块的输出 主要是包含 jar 的 zip 文件 并将它们组合成一个 ISO 映像 Thanks 现在有一个 ISO9660 maven 插件可以完成这项工作 https github
  • JPA ManyToMany 产生的空联接表

    我有一个应用程序 其中我尝试使用 Hibernate 作为 JPA 提供程序来实现两个实体之间的多对多关系 我正在尝试的例子是一个单向的 其中一个相机可以有多个镜头 而镜头可以安装到多个相机中 以下是我的实体类 只需粘贴其中的相关部分 Ca

随机推荐

  • 浮点数的正则表达式?

    我正在尝试编写一个正则表达式来验证浮点数 这是我迄今为止所做的 1 9 d 0 2 d 1 1 如果满足以下条件 则该号码有效 要么是正的 要么是负的 最多 2 位数字 十位或百位 百位数字不能为0 只能是1 9 比例最大为 1 小数值可以
  • StackOverflowException 未处理

    我的代码中出现此错误 MedCareProviderLibrary dll 中发生 System StackOverflowException 类型的未处理异常 这是我的代码片段以及错误的来源 它在有错误的部分上显示一个黄色箭头 显示错误的
  • 在 Matlab 中查找 pcolor 中的轮廓/边缘

    我正在尝试制作一个遵循 像素 边缘的轮廓pcolor在 Matlab 中绘图 这可能在图片中得到最好的解释 这是我的数据图 黄色数据 data 1 和蓝色数据 data 0 之间有明显的界限 请注意 这是一个pcolor绘图 因此每个 正方
  • 从 for 循环到 Java 8 Stream 示例

    我想要一个 Java 8 的简单示例Streams去理解它 我有这个代码可以返回免费出租车 我想用使用 Java 8 流的等效代码替换这个 for 循环 private List
  • PHP 根据由括号分隔的字符串中的键名称创建多维关联数组

    我有一个字符串 括号中包含可变数量的键名称 例如 str key subkey otherkey 我需要创建一个多维数组 该数组具有字符串中表示的相同键 value只是一个在这里不重要的字符串值 arr key gt subkey gt o
  • 无法导入 anaconda 中安装的包

    I have a simple question I have install resampy using anaconda conda install c conda forge resampy 现在 当我将 resampy 导入到我的
  • 采用整数并返回所有可能的加法格式的算法

    我需要编写一个算法 它接受一个整数并返回所有可能的加法格式 e g 如果我输入 6 它将返回以下字符串 0 6 6 1 1 1 1 1 1 6 1 1 1 1 2 6 1 1 1 3 6 1 1 4 6 1 5 6 2 1 1 1 1 6
  • 如何获取目录的父目录

    如何获取目录的父目录 File parent new File System out println Parent directory parent getParent prints Parent directory null 我有一个 M
  • 绕过 500 行限制

    我编写了一个我很满意的 Google Fusion Tables 脚本 如下 但它只在我的表中加载 500 行点 该表有 20 000 多行 这是我第一次来到这个社区 我真的很惊讶地发现了极限 有什么方法可以加载所有行吗
  • 计算 Pandas 中值的数量[重复]

    这个问题在这里已经有答案了 我有一个 Pandas 数据框 如下构建 Col1 Col2 1 A 1 B 1 B 2 A 2 A 3 A 3 Nan 对于 Col1 的每个值 我想计算 Col2 的每个值 忽略 Nan 值 并将总和放入关联
  • 为什么可浏览属性使属性不可绑定?

    我正在尝试使用System Windows Forms PropertyGrid 要使属性在此网格中不可见 应使用BrowsableAttribute set to false 但添加此属性会使该属性不可绑定 Example 创建一个新的
  • 操作方法:Grails 3.0.2 + Oracle Database 12c?

    我正在使用 Grails 迈出第一步 并尝试使用 Oracle Database 12c 创建一个 hello world 应用程序 不幸的是 www grails org 上有关数据库特定部分的教程文档似乎并不那么全面 例如 与我使用了几
  • 没有可编译的体系结构(ARCHS=、VALID_ARCHS=armv7 armv7s)

    我使用的是 Xcode 4 5 2 并且有一个无法为运行 iOS 6 0 1 的 iPhone 编译的项目 尽管其他项目使用相同的设置可以正常编译 如下图所示 关于如何解决这个问题有什么想法吗 您可能正在使用一些尚不支持armv7s架构的第
  • 如何从 JavaScript 函数调用 PHP 类方法 [重复]

    这个问题在这里已经有答案了 可能的重复 从 javascript 调用 php 函数 我知道php是服务器端 JavaScript是客户端 但我想知道如何在调用 JavaScript 函数时运行 PHP 方法 下面是我的代码 我知道错误是
  • 将事件/命令与 XamlReader 结合使用

    我正在使用 XamlReader Parse string 动态构建我的数据模板 我遇到的问题是我无法在使用 XamlReader 创建的任何控件上放置任何事件 在网上做了一些研究后 我了解到这是 XamlReader 的一个已知限制 我对
  • 仅当页面位于 React Router Dom 的站点内时,如何返回一页?

    我想创建一个 返回 按钮 如果该页面位于网站内 则该按钮仅返回一页 我试过以下这个答案添加返回按钮 import useNavigate from react router dom function YourApp const naviga
  • pcap_lookupnet 返回错误的 IP 地址

    以下 libpcap 文档中的示例代码生成以下代码 该代码应报告给定接口的 IP 地址 本例中为 eth0 为简洁起见 省略错误检查 include
  • 填充 Azure AD B2C Orchestration 中的电子邮件地址文本框

    我正在使用自定义策略来执行一些用户旅程并使用MFA 的社交和本地帐户 在其中一个步骤中 我询问用户他们的电子邮件地址 我正在使用 LocalAccountDiscoveryUsingEmailAddress 在第一个屏幕上获取他们的电子邮件
  • 在 MVC3 中使用 JQuery 渲染部分视图

    我有一些记录 单击每条记录后 信息需要显示在手风琴中 该信息应该从数据库动态获取 到目前为止我所做的是 创建局部视图 那应该显示详细信息 单击记录后 我调用 jquery 方法并在控制器上执行我的方法 控制器以 Json 形式返回对象 或任
  • 向 Selenium2(WebDriver) chrome 驱动程序添加扩展

    我使用下面的代码使用 webdriver selenium 2 启动 chrome Map