[英]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.