javascript - 如何使用 Java 处理带有 Selenium WebDriver 的 Firefox 中的身份验证弹出窗口
问题描述
我正在尝试创建用于绕过服务器身份验证的扩展,将其安装在 Firefox 浏览器上并在创建驱动程序时传递 .xpi 文件,以便在登录时调用它并绕过服务器身份验证。在 Firefox 上安装 .xpi 文件时遇到错误。错误:“无法安装此插件,因为它似乎已损坏”
步骤 1. 创建 manifest.json 文件(代码如下)
{
“name”: “Webrequest API”,
“version”: “1.0”,
“description”: “Extension to handle Authentication window”,
“permissions”: [
“webRequest”,
“webRequestBlocking”,
“”
],
“background”: {
“scripts”: [“webrequest.js”]
},
“manifest_version”: 2
}
创建 webrequest.js 文件。下面提到的代码。
var target = “<a href="https://sso.viacomcloud.com/" rel="nofollow noreferrer">https://sso.viacomcloud.com/”;
var myCredentials = { username: “getestone”, password: “V*******” } var pendingRequests = []; // A request has completed. // We can stop worrying about it. function completed(requestDetails) { console.log(“completed: ” + requestDetails.requestId); var index = pendingRequests.indexOf(requestDetails.requestId); if (index > -1) { pendingRequests.splice(index, 1); } } function provideCredentialsSync(requestDetails) { // If we have seen this request before, then // assume our credentials were bad, and give up. if (pendingRequests.indexOf(requestDetails.requestId) != -1) { console.log(“bad credentials for: ” + requestDetails.requestId); return {cancel:true}; } pendingRequests.push(requestDetails.requestId); console.log(“providing credentials for: ” + requestDetails.requestId); return {authCredentials: myCredentials}; } browser.webRequest.onAuthRequired.addListener( provideCredentialsSync, {urls: [target]}, [“blocking”] ); browser.webRequest.onCompleted.addListener( completed, {urls: [target]} );
使用 7-zip 文件管理器创建了一个 zip 文件并将该 zip 文件重命名为 Ext.xpi
在 firefox(版本 70)上打开 about:config 并将 xpiextensionsignrequired 更改为 'False'</p>
打开关于:Firefox 上的插件。选择“从文件安装扩展”。选择上面第 4 步中创建的 Ext.xpi。
我收到以下错误:“无法安装此插件,因为它似乎已损坏。” 而不是在 Firefox 浏览器上获取安装选项。
请帮助@SubjectiveReality
解决方案
如果您正在寻找快速解决方案,请尝试使用“机器人”类并发送密钥。
机器人 rb= new Robot(); rb.Keypress() .....
推荐阅读
- algorithm - 存在哪些算法可以使用特定函数从数组的一个顺序转到另一个顺序?
- tomcat9 - 仅在主机中传递冒号时,Tomcat服务器失败
- ios - 将 JSON 转换为字符串数组
- node.js - 带有 mysql 承诺的 Node.JS
- python - 从 python Gtk 列表中选择一个选项并将其存储在一个变量中
- node.js - 日期数字格式转换为节点 js 中的月份字符串格式
- amazon-s3 - 数据管道的测试自动化
- javascript - 来自分支的错误:网络请求无效
- cmd - 在 Azure Pipeline 构建中刷新环境变量
- mysql - 足球数据库 - sql 查询 - 无视图 - 进球数最多的球队