5

Próbuję obsłużyć wyskakujące okno uwierzytelniania w jednym z moich nowych skryptów Webdriver. Mam działające rozwiązanie dla IE, ale zmagam się z Chrome. IE było tak proste, jak przestrzeganie wskazówek na [tej stronie]: How to handle authentication popup with Selenium WebDriver using Java. Wątek ten nie jest świetnym rozwiązaniem dla Chrome, chociaż kilku komentatorów zwraca uwagę, że to rozwiązanie nie działa w Chrome. Problem polega na tym, że przy próbie wykonania poniższego kodu w przeglądarce Chrome okienko logowania nie jest alertem.Jak obsługiwać wyskakujące uwierzytelnianie w przeglądarce Chrome przy użyciu Selenium WebDriver za pomocą Java

WebDriverWait wait = new WebDriverWait(driver, 10);  
Alert alert = wait.until(ExpectedConditions.alertIsPresent());  
alert.authenticateUsing(new UserAndPassword(**username**, **password**)); 

To nie jest wyskakujące okno uwierzytelniania poziomu Windows(), strona internetowa jest po prostu chroniona hasłem. Wiem, że istnieje kilka innych przypadków tego pytania na Stack Overflow, ale nie widzę więcej niż 2 lata temu. Mam nadzieję, że teraz jest lepsze rozwiązanie w 2017 roku. Z góry dziękuję.

+1

Czy możesz udostępnić witrynę? – Guy

+1

Chciałbym, ale w ciągu ostatnich 2 lat mieliśmy kilka problemów z zabezpieczeniami i wiem, że mój menedżer będzie się denerwować, że udostępniam link. Jest to publicznie skierowana strona dla programistów, dlatego mają one chronione hasłem. –

+0

Czy spojrzałeś na to? http://seleniumwebdrivertrainings.com/how-to-perform-basic-authentication-for-firefoxdriver-chromedriver-iedriver-in-selenium-webdriver/ – IamBatman

Odpowiedz

2

Czy to nie jest "wyskakujące" okno podręczne, które można obsłużyć, dodając adres z nazwą użytkownika i hasłem?

Zamiast driver.get("http://www.domain.com/"); przejdź do driver.get("http://username:[email protected]");.

+1

Próbowałem tego i to nie działa dla mnie. Może to być problem ze sposobem, w jaki nasza strona internetowa pyta o dane uwierzytelniające, a może nie skonfigurowałem poprawnie Chrome do obsługi http: // user: [email protected]? –

+0

Więc to była odpowiedź. Próbowałem zrobić "http: // nazwa_użytkownika: hasł[email protected]". Musiałem wykonać "httpS: // nazwaużytkownika: hasł[email protected]". –

+0

@TravisNeedham Próbuję też, ale to nie działa dla mnie. Moje hasło zawiera już @. Jak mogę sobie z tym poradzić? Pls sugeruje, że –