我正在尝试使用BrowserMob来使用Selenium WebDriver代理页面。当(Python)测试用例尝试从localhost加载页面时,BrowserMob无法代理它们。
BrowserMob是否可以代理到localhost上的Web服务器的连接?
我在Selenium ChromeDriver上也遇到了同样的问题。它没有为localhost使用代理
将seleniumProxy的noProxy属性设置为"<-loopback>"解决了此问题。
val seleniumProxy = ClientUtil.createSeleniumProxy(this)
...
seleniumProxy.noProxy = "<-loopback>"
查看下面的链接了解详细信息。https://chromium.googlesource.com/chromium/src/+/master/net/docs/proxy.md#bypass-rule_subtract-implicit-rules
BrowserMob Proxy将与localhost一起使用,但仅在最新版本(2.0.0)中,并且仅在运行代理时定义bmp.allowNativeDnsFallback Java属性时使用。我不熟悉Python包装器,但它不太可能满足这些标准。
问题是BrowserMob Proxy使用的DNS解析,它基本上忽略了定义localhost的hosts文件。如果您在发出请求时使用127.0.0.1而不是localhost,那么它应该对您有效。