20

Chrome 59 removed support for https://user:[email protected] URLs.Selenium Chrome 60 Hộp thoại xử lý cơ bản SAML xác thực cơ bản qua HTTPS

Tôi có một selen kiểm tra C# mà cần phải làm việc với Chrome Version 60 on Windows in 'headless' mode

ChromeOptions options = new ChromeOptions(); 
options.AddArgument("headless"); 
driver = new ChromeDriver(chrome, options); 

Dưới đây là xác thực SAML cần thoại tôi đang cố gắng để xử lý trên Windows: Basic Auth Dialog

Dựa trên câu trả lời đưa ra ở đây : How to handle authentication popup with Selenium WebDriver using Java) Tôi có thể thấy một số cách giải quyết để xử lý điều này trong FireFox, nhưng không có gì cho Chrome 60 ở chế độ không đầu.

Tôi đã thử đoạn mã sau để truy cập một URL với các thông tin trước khi quý khách đến thăm URL được kiểm tra (không có thông tin) tuy nhiên nó xuất hiện có một bug với Chrome 60.

goTo("http://user:[email protected]"); // Caches auth, but page itself is blocked 
goTo("http://localhost"); // Uses cached auth, page renders fine 
// Continue test as normal 

tôi có thể thấy như sau mã trong Firefox xử lý xác thực và hộp thoại không bao giờ bật lên:

FirefoxProfile profile = new FirefoxProfile(); 
profile.SetPreference("network.automatic-ntlm-auth.trusted-uris", "https://saml.domain.com"); 
profile.EnableNativeEvents = false;` 

tôi đã thử các cách tiếp cận thứ hai (using AutoIt) và hoạt động trên Chrome 60 nhưng làm es NOT hoạt động trên Chrome 60 ở chế độ Không đầu.

//Use AutoIt to wait 4 seconds for the authentication required dialog to appear 
au3.Sleep(4000); 
//Use AutoIT to send in the credentials from app.config that are encrypted 
au3.Send(USERNAME + "{TAB}" + PASSWORD + "{ENTER}"); 
//Refresh the page 
driver.Navigate().Refresh(); 

Tôi hy vọng có một giải pháp tốt hơn bây giờ vào năm 2017 và rằng có một cách tiếp cận đó sẽ làm việc với Chrome 60 trong không đầu chế độ, bất kỳ con trỏ?

Chỉ cần rõ ràng: Cố gắng sử dụng embedded credentials sẽ KHÔNG hoạt động khi sử dụng chrome v59 + vì yêu cầu tài nguyên phụ sẽ bị chặn.

+0

Bản sao có thể xảy ra của [Cảnh báo Selenium Python - Tên người dùng & mật khẩu nhắc không hoạt động] (https://stackoverflow.com/questions/45328654/python-selenium-alert-prompt-username-password-is-not-working) – DebanjanB

+1

Bạn có thể kiểm tra [** Câu hỏi/Thảo luận/Chủ đề này **] (https://stackoverflow.com/questions/45345882/selenium-other-way-to-basic-authenticate-than-via-url/45352660?noredirect = 1 # comment77716943_45352660). – DebanjanB

+0

Tôi vẫn nhận được lời nhắc đăng nhập bằng chrome khi chạy kiểm tra selen. Và cả hai đề xuất không hoạt động với Chrome 60 ở chế độ không đầu trên Windows. – IanC

Trả lời

0

Có lẽ bạn có thể thực hiện kết nối trước đó bằng cách sử dụng XMLHttpRequest bằng cách sử dụng phương thức setRequestHeader để bạn có thể chỉ định tiêu đề xác thực. Sau khi thực hiện một yêu cầu duy nhất, bạn sẽ được xác thực cho tất cả các loại yêu cầu khác. Vấn đề lớn hơn có thể là XSS, tùy thuộc vào kịch bản của bạn, bạn có thể giải quyết nó.

Các vấn đề liên quan