#c# #selenium #selenium-webdriver
#c# #selenium #selenium-webdriver
Вопрос:
Я использую веб-драйвер Chrome. Тестирование автоматизации — это не проблема.
Но я также должен протестировать случай исключения. Проблема заключается только в отключении от Интернета.
[предварительное условие]
- Запустите мое приложение автоматизации.
- Отключите соединение Wi-Fi во время нормальной работы.
- Я увидел
"ERR_INTERNET_DISCONNECTED"
сообщение в браузере Chrome. - Насколько я знаю, произошло через 1 минуту
"OpenQA.Selenium.WebDriverException"
, время ожидания HTTP-запроса к удаленному веб-драйверу истекло через 60 секунд -
Я поймал исключение с помощью try ~ catch, но после этого я не могу управлять веб-драйвером chrome.Я имею в виду, я отправлю команды
_driver.Quit()
,_driver.Close()
,_driver.URL()
.. и т.д. Вызовы API не выполняются.do { try { _driver.FindElement(By.XPath(composeXPath)).Click(); _driver.Navigate().Back(); } catch (System.Net.WebException e) { System.Diagnostics.Debug.WriteLine("[Web Actor]WebException expired"); } catch (OpenQA.Selenium.WebDriverException e) { System.Diagnostics.Debug.WriteLine("[Web Actor]WebDriverException"); _driver.Quit(); } } while (exit_flag == false); }
Это базовая концепция в webdriver или нормальная работа?
Вы можете легко создать это исключение.
Если вы столкнулись с такой же проблемой, помогите мне.
Перед включением Wi-Fi и перезагрузкой URL-адреса из браузера Chrome я не могу получить доступ
для веб-драйвера Chrome.
Я собираюсь уйти.
Ответ №1:
protected void disConnectInternet() throws IOException {
Map map = new HashMap();
map.put("offline", true);
map.put("latency", 5);
map.put("download_throughput", 500);
map.put("upload_throughput", 1024);
CommandExecutor executor = ((ChromeDriver)driver).getCommandExecutor();
Response response = executor.execute(
new Command(((ChromeDriver)driver).getSessionId(), "setNetworkConditions", ImmutableMap.of("network_conditions", ImmutableMap.copyOf(map))));
}