我正在尝试使用 BrowserMob 通过 Selenium WebDriver 代理页面。当 (Python) 测试用例尝试从 localhost 加载页面时,BrowserMob 无法代理它们。
BrowserMob 是否可以代理连接到本地主机上的网络服务器?
我正在尝试使用 BrowserMob 通过 Selenium WebDriver 代理页面。当 (Python) 测试用例尝试从 localhost 加载页面时,BrowserMob 无法代理它们。
BrowserMob 是否可以代理连接到本地主机上的网络服务器?
Selenium ChromeDriver 也有同样的问题。它没有为本地主机使用代理。
将 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 代理将与 localhost 一起使用,但仅在最新版本 (2.0.0) 中,并且仅在运行代理时定义 bmp.allowNativeDnsFallback Java 属性时。我不熟悉 Python 包装器,但它不太可能满足这些标准。
问题是 BrowserMob 代理使用的 DNS 解析,它基本上忽略了定义 localhost 的主机文件。如果您在发出请求时使用 127.0.0.1 而不是 localhost 它应该适合您。