Отключить всплывающее окно «Восстановить страницы? Chrome не завершилось правильно». в селене webdriver Java - PullRequest
0 голосов
/ 10 апреля 2020

Хотя я видел некоторые связанные вопросы, я снова задаю этот вопрос, поскольку все еще сталкиваюсь с проблемой. У меня есть веб-сайт, который запрашивает код подтверждения входа в систему при первом входе в систему, а затем не запрашивает дальнейшие входы в систему. Если я не использую пользовательский профиль браузера, сайт запрашивает код подтверждения каждый раз, когда selenium запускает вход в систему. Поэтому я использовал обычный профиль браузера, как показано ниже (, это не вопрос )

options.addArguments("user-data-dir=C:\\Users\\user\\AppData\\Local\\Google\\Chrome\\User Data\\default");

Затем, после завершения теста, я закрываю браузер, используя

driver.quit();

enter image description here

Проблема в том, что при следующем запуске теста снова откроется браузер chrome с всплывающим окном «Восстановить страницы? Chrome не выключился» правильно." и сайт снова запрашивает код подтверждения после входа в систему. Ввод кода подтверждения не является частью моего сценария, поэтому сценарий не выполняется. Затем я закрываю браузер вручную, нажимая X в верхнем углу. Затем я снова запускаю тест, браузер chrome обычно открывается без всплывающего окна, и сайт не запрашивает код подтверждения, вход выполнен успешно. затем скрипт закрывает сам браузер с помощью driver.quit (). Затем я снова запускаю тест, браузер chrome открывается с всплывающим окном и тест снова не проходит. Это показывает, что driver.quit () не закрывает браузер правильно. Я пробовал несколько настроек, но всплывающее окно все еще появляется.

  1. файл настроек -> "exit_type":"none" (также как и "обычный") и exit cleanly = true
  2. настройки сайта - > всплывающие окна и перенаправления -> Заблокировано (рекомендуется)
  3. Я также пытался проверить наличие предупреждений или нет, но там указано «Нет предупреждений». Скрипт не обнаруживает всплывающее окно как предупреждение.

Как я могу убедиться, что браузер открывается НОРМАЛЬНО каждый раз, когда driver.quit () закрывает браузер в предыдущем тестовом прогоне? Пожалуйста, помогите.

Ниже мой код: я использую расширение chrome, поэтому не могу также отключить расширение.

        String extFilePath = "C:\\ChromeDriver\\Salesforce_inspector.crx";

        System.setProperty("webdriver.chrome.driver","C:\\chromedriver\\chromedriver.exe");
        ChromeOptions options = new ChromeOptions();
        options.addExtensions(new File(extFilePath));
        options.addArguments("--disable-notifications");
        options.addArguments("user-data-dir=C:\\Users\\user\\AppData\\Local\\Google\\Chrome\\User Data\\default");
        options.addArguments("--start-maximized");

        WebDriver driver = new ChromeDriver(options);


        try 
        { 
            driver.switchTo().alert(); 
            System.out.println("alert accepted"); 
        }   // try 
        catch (NoAlertPresentException Ex) 
        { 
            System.out.println("No alert");
        }           

        driver.get("salesforce url");

Я не хочу использовать режим инкогнито, потому что мне нужно сохранить файлы cookie и пароли для предотвращения упомянутой ранее проблемы с кодом подтверждения входа в систему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...