Обработка всплывающего окна «Ваше подключение к этому сайту не является частным» в Chrome с использованием Selenium - PullRequest
0 голосов
/ 05 апреля 2019

У меня возникла проблема при разработке автоматизации.

1 - URL-адрес для просмотра 1

2 - Он автоматически перенаправляется на URL-адрес 2

3 - Наличие HTTP /Базовая аутентификация

enter image description here

Я играл с этим целыми днями, но мне не удавалось обойти это всплывающее окно.Попробовал:

i - Аргументы Chrome

ii - Имя пользователя / пароль встроены в 1URL

iii - Робот

iv - Переключение на оповещение () setAuthentication /sendkeys

Оценили ваши советы

PS: Подумайте об обработке с помощью AutoIt или Sikuli.Тем не менее, я хотел бы знать, как справиться с этим без использования сторонних разработчиков.

Используется фрагмент кода

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class Test {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    long startTime = System.currentTimeMillis();

    System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
            ChromeOptions options = new ChromeOptions();
    options.addArguments("test-type");
    options.addArguments("ignore-certificate-errors");
    options.setAcceptInsecureCerts(true);

    WebDriver driver = new ChromeDriver(options);
    driver.manage().window().maximize();

    driver.get("http://username:password@URL1");

    // Being redirected to URL2
    // Stucked forever at HTTP/ Basic Authentication

    driver.findElement(By.id("username")).sendKeys("username");
    driver.findElement(By.id("password")).sendKeys("password");
    driver.findElement(By.id("kc-login")).click();
    try {
        Thread.sleep(5000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }       

    driver.close();
}

}

1 Ответ

0 голосов
/ 10 апреля 2019

Chrome больше не поддерживает возможность взаимодействия с диалоговым окном. Для этого ни JS, ни Java, ни Python не могут легко взаимодействовать на уровне ОС.

driver.get("http://username:password@URL1");

Но вы можете использовать Sikuli для распознавания изображений OCR и обработки всплывающих окон. У него есть поддержка Java и IDE

http://sikulix.com/

...