首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Chrome Driver中禁用WebRTC?

如何在Chrome Driver中禁用WebRTC?
EN

Stack Overflow用户
提问于 2017-06-17 07:29:32
回答 2查看 4.1K关注 0票数 1

我想在Chrome驱动中禁用WebRTC,但不知道怎么做。

我试着这样做(在一些博客中找到了这个解决方案):

代码语言:javascript
复制
capabilities.setCapability("chrome.switches", Arrays.asList(
   "--disable-webrtc-multiple-routes", "--disable-webrtc-hw-encoding",
   "--disable-webrtc-hw-decoding", "--disable-webrtc-encryption"));

它不起作用。是的,我知道那里没有类似"--disable- WebRTC“的东西,但这就是我找到的关于WebRTC的所有东西,我的意思是,我没有找到一些其他的WebRTC参数。

我在这里搜索过:https://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/chrome_switches.cc

然后是:https://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/pref_names.cc

我没找到任何关于WebRTC的东西。

EN

回答 2

Stack Overflow用户

发布于 2017-06-17 16:20:05

我找到了一个解决方案。

我不知道如何在Chrome驱动程序设置中直接禁用WebRTC,但还有另一种方法:添加一些WebRTC拦截扩展。下面是我是如何做到的:

  1. 启动您的Chrome浏览器并在Chrome Webstore中搜索Get CRX扩展,安装Get CRX。
  2. 现在如果您在Chrome Webstore中搜索任何其他扩展,打开其页面并在页面的任意位置右键单击,您将在上下文菜单中看到"Get CRX“。找到你最喜欢的WebRTC拦截扩展,打开它的页面,然后点击“获取CRX”。下载.crx文件。现在你在这个.crx文件中有了WebRTC拦截扩展,并且可以在Chrome Driver中使用它。
  3. 使用以下代码来启动带有扩展名的Chrome Driver:

Map chromeOptions =新文件,Object>();ArrayList ext =新ArrayList();byte[] byteExt =Files.readAllBytes(新文件(“.crx文件路径”).toPath());ext.add(Base64.encode(byteExt));chromeOptions.put("extensions",ext);DesiredCapabilities capabilities = DesiredCapabilities.chrome();Base1 chromeOptions);driver = new

这段代码将.crx扩展添加到Chrome选项中。扩展名必须是base64编码的。我使用Apache Commons lib对其进行编码(导入org.apache.xerces.impl.dv.util.Base64)。

现在,您的Chrome驱动程序将启动WebRTC阻止扩展,因此,WebRTC将被禁用。

但这种方法并不理想,因为在这种情况下,您将在浏览器插件中使用WebRTC阻塞扩展。所以,如果你想完全随机地测试某个站点(即不同的ip,不同的窗口大小,不同的用户代理,不同的插件),它不会是这样的,因为你总是有相同的插件。

因此,如果有人知道如何在没有扩展的情况下禁用WebRTC,将不胜感激。

票数 2
EN

Stack Overflow用户

发布于 2019-02-05 04:03:29

这里有一种在Python中部分禁用webRTC的方法。这些是webRTC扩展/插件在Chrome中切换的选项。这些选项可防止IP泄漏问题。Java可能与此类似。

代码语言:javascript
复制
# partially disable webrtc
preferences = {
    "webrtc.ip_handling_policy" : "disable_non_proxied_udp",
    "webrtc.multiple_routes_enabled": False,
    "webrtc.nonproxied_udp_enabled" : False
}
chrome_options.add_experimental_option("prefs", preferences)

适用于Chrome 72,但应适用于所有版本48和更高版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44599265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档