[英]Selenium headless chrome with proxy authentication
我正在使用 Selenium (4.1.0) 和 C# (.Net 5.0/Console 应用程序) 自动化 Headless Chrome WebDriver (100.0.48.96.60)。 我想添加代理身份验证,但似乎没有什么对我有用。
到目前为止我已经尝试过:
System.InvalidOperationException:'未收到命令响应:Fetch.getResponseBody'
OpenQA.Selenium.DevTools.CommandResponseException: 'Fetch.continueRequest: Invalid InterceptionId。'
“用户名:密码@IP:端口”
我能找到的所有答案要么不适用于无头,要么不再适用。 因此,您可以随意留下您对该主题的任何想法。
这个响应是用 Java 编写的,但你可以将它调整为具有两个库的 C#,它使用带有硒的 BI-DI 的 Augmenter,它对我来说无头( https://www.browserstack.com/docs/automate/selenium /event-driven-testing#register-basic-auth )。
您有 4 个变量来填充 PROXY_HOST、PROXY_PORT、PROXY_USER、PROXY_PASS:
ChromeOptions options = new ChromeOptions();
options.setHeadless(true);
options.setProxy(new Proxy().setHttpProxy(PROXY_HOST + ":" + PROXY_PORT)).setSsl(PROXY_HOST + ":" + PROXY_PORT);
driver = new ChromeDriver(options);
DevTools devTools = ((HasDevTools) driver).getDevTools();
devTools.createSession();
driver = new Augmenter().
addDriverAugmentation("chrome", HasAuthentication.class, (caps, exec) -> (whenThisMatches, useTheseCredentials) -> devTools.getDomains().network().addAuthHandler(whenThisMatches, useTheseCredentials)).augment(driver);
((HasAuthentication) driver).register(UsernameAndPassword.of(PROXY_USER, PROXY_PASS));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.