我在 Java 中使用 Selenium Webdriver (Chromedriver) 以及 BrowserMob 代理服务器来捕获 har 文件中的 HTTP 流量。我最近遇到了网站部分无法加载的问题,我已将其缩小到此错误:“无法加载资源https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/ jquery.min.js "。
似乎在使用代理服务器时,Selenium 驱动程序无法访问 https 链接的 SSL 证书。这是我正在使用的代码片段:
ProxyServer server = new ProxyServer(4040);
server.start();
Proxy proxy = server.seleniumProxy();
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, proxy);
driver = new ChromeDriver(capabilities);
server.newHar("myHar");
Har har = server.getHar();
server.stop();
我已经尝试添加"capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);"
,这解决了上述问题,但前提是我删除"capabilities.setCapability(CapabilityType.PROXY, proxy);"
然后我不再能够捕获 har 文件。
我尝试切换到 firefox 驱动程序并设置 firefox 配置文件,但要么我做得不正确,要么它也不适用于我的目的。
我还尝试在 Trusted Root Certifaction Authorities 中设置 BrowserMob 代理附带的cybervillainsCA 证书,但这也没有解决问题。
有谁知道如何以我可以收集 HTTP 流量并成功加载上述资源的方式解决这个问题?