我一直在尝试使用 docker 和 selenium grid 解决 RemoteWebDriver 和 ChromeOptions 的一些问题。主要问题在于代理,但我通过代理 pac 文件将 pac 文件 url 作为 arg 传递到 ChromeOptions 中解决了一半。下面的代码在 docker debug 和本地独立运行时运行良好,但是一旦我尝试使用网格或部署并使用竹子运行,驱动程序就会打开,我可以看到 ChromeOptions 没有被传递,因为没有使用 poxy pac 文件,它是刚刚冻结在 org.openqa.selenium.remote.ProtocolHandshake createSession。我已经研究了几个星期了,现在我正处于一个困难的阶段。我看过一些帖子说 DesiredCapabilities 已被弃用,但我还没有找到一种方法来实现 ChromeOptions 没有它。
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
options.addArguments("--disable-infobars");
options.addArguments("--proxy-pac-url= http://ProxyPacURL.com");
DesiredCapabilities dc = DesiredCapabilities.chrome();
dc.setCapability(ChromeOptions.CAPABILITY, options);
driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), dc);