Хотя я видел некоторые связанные вопросы, я снова задаю этот вопрос, поскольку все еще сталкиваюсь с проблемой. У меня есть веб-сайт, который запрашивает код подтверждения входа в систему при первом входе в систему, а затем не запрашивает дальнейшие входы в систему. Если я не использую пользовательский профиль браузера, сайт запрашивает код подтверждения каждый раз, когда selenium запускает вход в систему. Поэтому я использовал обычный профиль браузера, как показано ниже (, это не вопрос )
options.addArguments("user-data-dir=C:\\Users\\user\\AppData\\Local\\Google\\Chrome\\User Data\\default");
Затем, после завершения теста, я закрываю браузер, используя
driver.quit();
Проблема в том, что при следующем запуске теста снова откроется браузер chrome с всплывающим окном «Восстановить страницы? Chrome не выключился» правильно." и сайт снова запрашивает код подтверждения после входа в систему. Ввод кода подтверждения не является частью моего сценария, поэтому сценарий не выполняется. Затем я закрываю браузер вручную, нажимая X в верхнем углу. Затем я снова запускаю тест, браузер chrome обычно открывается без всплывающего окна, и сайт не запрашивает код подтверждения, вход выполнен успешно. затем скрипт закрывает сам браузер с помощью driver.quit (). Затем я снова запускаю тест, браузер chrome открывается с всплывающим окном и тест снова не проходит. Это показывает, что driver.quit () не закрывает браузер правильно. Я пробовал несколько настроек, но всплывающее окно все еще появляется.
- файл настроек ->
"exit_type":"none"
(также как и "обычный") и exit cleanly = true
- настройки сайта - > всплывающие окна и перенаправления -> Заблокировано (рекомендуется)
- Я также пытался проверить наличие предупреждений или нет, но там указано «Нет предупреждений». Скрипт не обнаруживает всплывающее окно как предупреждение.
Как я могу убедиться, что браузер открывается НОРМАЛЬНО каждый раз, когда 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 и пароли для предотвращения упомянутой ранее проблемы с кодом подтверждения входа в систему.