硒 chromedriver 身份验证代理

2024-01-07

我需要连接到代理服务器 用户名和密码(即 USERNAME:PASSWD@IP:PORT) 在java中的selenium 2中使用chromedriver webdriver。 我已经找到了不使用用户名的方法 和密码,但还没有找到方法。

Thanks.


使用用户名和密码连接到代理服务器的一种方法是使用该工具sshuttle在您的机器上运行。该工具允许您使用 SSH 创建到代理服务器的连接,然后路由所有流量。

$ sshuttle -r username@remotehost 0.0.0.0/0

See https://sshuttle.readthedocs.io/en/stable/usage.html https://sshuttle.readthedocs.io/en/stable/usage.html了解更多信息。

另一种方法是添加 Chrome 扩展程序。这种方法有点复杂,但它允许您使用 Chrome WebDriver,而无需在后台运行任何工具。您需要通过在名为的存档中包含两个文件来创建 Chrome 扩展程序proxy.zip: Background.js and manifest.js.

背景.js:

var config = {
    mode: "fixed_servers",
    rules: {
        singleProxy: {
            scheme: "http",
            host: "YOUR_PROXY_ADDRESS",
            port: parseInt(PROXY_PORT)
        },
        bypassList: ["foobar.com"]
    }
};
chrome.proxy.settings.set({ value: config, scope: "regular" }, function () { });
function callbackFn(details) {
    return {
        authCredentials: {
            username: "PROXY_USERNAME",
            password: "PROXY_PASSWORD"
        }
    };
}

chrome.webRequest.onAuthRequired.addListener(
    callbackFn,
    { urls: ["<all_urls>"] },
    ['blocking']
);

清单.js:

var config = {
    mode: "fixed_servers",
    rules: {
        singleProxy: {
            scheme: "http",
            host: "YOUR_PROXY_ADDRESS",
            port: parseInt(PROXY_PORT)
        },
        bypassList: ["foobar.com"]
    }
};
chrome.proxy.settings.set({ value: config, scope: "regular" }, function () { });
function callbackFn(details) {
    return {
        authCredentials: {
            username: "PROXY_USERNAME",
            password: "PROXY_PASSWORD"
        }{
            "version": "1.0.0",
            "manifest_version": 3,
            "name": "Chrome Proxy",
            "permissions": [
            "Proxy",
            "Tabs",
            "unlimitedStorage",
            "Storage",
            "<all_urls>",
            "webRequest",
            "webRequestBlocking"
            ],
            "background": {
            "scripts": ["background.js"]
            },
            "Minimum_chrome_version":"76.0.0"
            }
    };
}

chrome.webRequest.onAuthRequired.addListener(
    callbackFn,
    { urls: ["<all_urls>"] },
    ['blocking']
);

然后您需要使用以下命令将 Chrome 扩展添加到 ChromeOptionsaddExtension method:

        ChromeOptions options = new ChromeOptions();
        options.addExtensions("proxy.zip");

页面上描述了详细信息(对于 Python):https://www.browserstack.com/guide/set-proxy-in-selenium https://www.browserstack.com/guide/set-proxy-in-selenium

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

硒 chromedriver 身份验证代理 的相关文章

随机推荐

  • JAI create 似乎使文件描述符保持打开状态

    我有一些旧代码直到最近才工作 但现在似乎很糟糕 因为它在使用 OpenJDK 6 而不是 Java SE 6 的新服务器上运行 问题似乎围绕着 JAI create 我有 jpeg 文件 我将其缩放并转换为 png 文件 这段代码过去工作时
  • ClassNotFoundException:重建后的 org.springframework.cglib.transform.impl.MemorySafeUndeclaredThrowableStrategy

    当尝试在 Tomcat 上运行我的项目时 我遇到了这个奇怪的错误 直到几天前 一切都还好 从那以后我就没有改变过任何一行代码 在一切开始失败之前我做的唯一一件事是 Maven 上下文菜单中的 更新项目 Aug 21 2013 4 39 48
  • HTML 自动嵌入最近从 YouTube 频道上传的视频

    我想知道是否有办法将最近上传的内容从 YouTube 频道自动嵌入到网站 我什至不知道从哪里开始 帮助 使用以下代码通过指定频道 ID 而不是频道名称来自动嵌入 YouTube 频道的最新视频 var channelID UC0xXUfNS
  • 是否可以在 macOS 上以编程方式更改 XDR 显示参考模式(又名预设)?

    Apple 的 XDR 显示器 例如 Pro Display XDR 和 Liquid Retina Display XDR 支持显示参考模式 也称为预设 这些可以在 系统首选项 gt 显示 gt 显示设置 gt 预设 中进行更改 选择 X
  • 在 Laravel 5.4 中将外键 bigInteger 设置为 bigIncrements

    因此 我尝试在 Laravel 的迁移文件中设置外键 以便用户表很简单 但我尝试使用 bigIncrements 而不是立场增量 public function up Schema create users function Bluepri
  • 将数据表拆分为小表 R

    我有一个下表 超过 1k 行 x1 x2 x3 x4 7809 243638 1 1 7809 243638 1 1 7809 243638 1 1 3453 222222 1 0 我需要根据第二列将此表拆分为小表 将在我的环境中作为数据框
  • 确保 CSV 输出中保留长数字

    我有一个 R 数据框 需要保存为 csv 文件 但是在保存为 csv 文件时 一个数字列会更改其格式 我有一个名为 ID 的字符列 如下所示 df lt data frame ID as character 1181050000000002
  • 将新选项卡添加到选项卡栏控制器

    我正在创建一个标签栏 iOS 应用程序 选项卡栏视图控制器有两个选项卡 每个选项卡都连接到一个视图控制器 它看起来是这样的 我需要向选项卡控制器添加更多选项卡 我在故事板中这样做如下 我添加了一个新的视图控制器 我按住 Control 键并
  • 从控制器重定向到项目外部的不同 URL

    我如何从我的控制器重定向到不同的网址 例如 yahoo com hotmail com 我正在使用 Spring 3 0 并使用配置而不是注释 我忘记提及的一件事是 url 将是用户输入 因此无法将其添加到配置中 谢谢 高卢人 您可以在控制
  • 如何强制应用程序更改 iOS/Objective-C 中的语言?

    我在让应用程序立即更改语言时遇到问题 例如this app https itunes apple com app zalo nhan tin kieu moi id579523206 mt 8 我发现了很多类似的问题this https s
  • subprocess.check_output() 没有输出

    我正在尝试在 Python 2 7 5 中运行以下代码 output subprocess check output commandList print len output 我的命令列表是一个参数列表 例如 ls l 但后来我发现即使我有
  • 在magento2中运行时设置包和主题

    我的包名称是 company 主题名称是 web 我还有另一个名为 system 的包 其主题名为 component 运行时来自块文件 但我想从 magento2 的前端设置该主题和包 如果您想在 magento 中运行时设置包和主题 只
  • 无法通过更改宽度或 Flex-basis 来隐藏 Flex 项目

    我想达到这样的效果 在默认状态下 有四个按钮 其中之一是 移动 按钮 当用户单击它时 我想展开按钮并显示其他文本和输入 但是我无法达到 默认状态 收件人 总是出现 我努力了flex basis and width 0px但没有效果 就像这样
  • 如何检测SearchView后退按钮按下?

    我使用单个活动来显示 SearchView 以及显示搜索结果 搜索结果只是项目的子集 因此搜索充当过滤器 一切似乎都工作正常 除了我不知道如何在单击 SearchView 的后退按钮时恢复视图中的所有项目 或者也许还有另一种方法来检测用户何
  • i = 0, ++i 定义了吗?

    我最近了解到 运算符以及它引入了一个事实序列点 我还了解到以下代码会导致未定义的行为 i i Because i在两个序列点之间修改了两次 但是下面的代码呢 i 0 i i 0 i 虽然我知道规则 但我无法得出结论 那么它是否是定义的行为
  • 需要在材质数据表中显示嵌套的 JSON 对象

    我需要将来自后端的嵌套 JSON 对象显示为 MatTableDataSource 的列字段 这是我的 JSON 对象 workstationId 100 assemblylineId 100 workstationDescription
  • 无法更改 git config 用户名,立即重置

    If I do git config global user name My New Name 它有效 只持续很短一段时间 如果我这样做 cat gitconfig 我可以看到正确的值user name财产 但是 一旦我打开新的终端窗口或进
  • sql在一个字段中选择父子递归

    我不知道如何选择递归查询 id idparent jobNO 1 0 1 2 1 2 3 1 3 4 0 4 5 4 5 6 4 6 使用 SqlServer 怎么得到这样的结果 id idparent jobNO ListJob 1 0
  • 如何使用 bash 脚本从文件中提取标记之间的文本

    我正在读这个问题 使用 bash 提取文本文件中 2 个标记之间的行 https stackoverflow com questions 4857424 extract text from between 2 tokens in a tex
  • 硒 chromedriver 身份验证代理

    我需要连接到代理服务器 用户名和密码 即 USERNAME PASSWD IP PORT 在java中的selenium 2中使用chromedriver webdriver 我已经找到了不使用用户名的方法 和密码 但还没有找到方法 Tha