我想在Chrome驱动中禁用WebRTC,但不知道怎么做。
我试着这样做(在一些博客中找到了这个解决方案):
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的东西。
发布于 2017-06-17 16:20:05
我找到了一个解决方案。
我不知道如何在Chrome驱动程序设置中直接禁用WebRTC,但还有另一种方法:添加一些WebRTC拦截扩展。下面是我是如何做到的:
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,将不胜感激。
发布于 2019-02-05 04:03:29
这里有一种在Python中部分禁用webRTC的方法。这些是webRTC扩展/插件在Chrome中切换的选项。这些选项可防止IP泄漏问题。Java可能与此类似。
# 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和更高版本。
https://stackoverflow.com/questions/44599265
复制相似问题