Selenium与BrowserMob-404错误

时间:2018-08-09 09:20:41

标签: java selenium browsermob-proxy browsermob

我目前正在尝试使用BrowserMob设置Selenium WebDriver,以在测试中捕获网络请求。目前,我的设置如下:

在192.168.1.97,端口8080上运行TomCat的开发机

在网络驱动程序上:

System.out.println( options.getCapability(CapabilityType.PROXY  ) );

返回:

代理(手动,http = 192.168.0.97:64181,ssl = 192.168.0.97:64181)

我们的网络上没有使用公司代理。

以下是我测试中的代码:

@BeforeClass
public static void setupWebDriver() throws MalformedURLException
{
   DesiredCapabilities capabilities = new DesiredCapabilities();
   proxy = new BrowserMobProxyServer();

   proxy.setMitmManager( ImpersonatingMitmManager.builder().trustAllServers( true ).build() );
   proxy.setChainedProxy( new InetSocketAddress( "192.168.1.97", 8080 ) );
   proxy.setTrustAllServers( true );
   proxy.start( 0 );

   // get the Selenium proxy object
   Proxy seleniumProxy = ClientUtil.createSeleniumProxy( proxy );
   seleniumProxy.setSslProxy( "192.168.1.97:" + proxy.getPort() );


   capabilities.setAcceptInsecureCerts( true );
   capabilities.setCapability( CapabilityType.ACCEPT_SSL_CERTS, true );
   capabilities.setCapability( CapabilityType.PROXY, seleniumProxy );

   proxy.setHarCaptureTypes( CaptureType.REQUEST_CONTENT, CaptureType.REQUEST_HEADERS );
   SeleniumHelper.startup( capabilities );
}

此刻正在发生的事情是Chrome生成成功,当我将功能传递给Web驱动程序时,本地Web服务器针对许多请求返回了404错误。这些似乎都是外部资源(与直接来自TomCat的请求相对),因此我的解决方案非常接近,只是无法让BrowserMob连接到第三方HTTP和HTTPS资源。例如jQuery失败,Google Analytics(分析)失败,等等。

我已经检查了实际资源中的HAR资源,并且代理似乎受到了打击,因为我能够读取HAR资源。即。我从这里得到输出:

super.getProxy().newHar("check.har");

goTo( "/507393" );
waitForNavigation();
Har har = super.getHar();
HarLog log = har.getLog();
List<HarEntry> entries = log.getEntries();
for(HarEntry entry: entries ) {
    HarRequest request= entry.getRequest();
    System.out.println( request.getUrl() );
}

如果删除“链接代理”的行,则Selenium根本不会连接到任何Web服务器。我怀疑本地设置是否不需要链接代理,但是与之相比,与之相比,我有了更进一步的了解。

谁能看到任何错误?我假设是因为我正在运行“嵌入式”模式,所以我不需要在命令行上运行代理吗?

还有其他值得探索的设置吗?

0 个答案:

没有答案