У меня есть довольно старый веб-сайт для поддержки, поддержка IE8 и выше. Теперь у меня есть план сделать автоматизацию тестирования на сайте, используя Selenium WebDriver (версия 3.7.1). Почти все работает хорошо, за исключением некоторых страниц, которые используют document.getElementById(). Дело в том, что на этих страницах используется "функция" IE11, которая, когда ни один элемент не соответствует указанному идентификатору, затем возвращает элемент с этим идентификатором как имя (как указано в этом потоке).
И когда brower (IE11) начинается с селена, он не может вызвать этот код (возвращает NULL, вызывая ошибку).
Дальнейшее исследование, я обнаружил, что при запуске вручную вызов navigator.appName возвращает "Microsoft Internet Explorer", а в другом случае возвращает "Netscape".
Что означает эта разница и является основной причиной моей проблемы. И самое главное, как это решить?
Я запускаю страницу с этим исходным кодом:
DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();
WebDriver driver = new InternetExplorerDriver(
new InternetExplorerOptions(ieCapabilities));
wait = new WebDriverWait(driver, 30);
driver.get(url);
Как вы упомянули, при invoking navigator.appName returns "Microsoft Internet Explorer" while returns "Netscape" in the other case
является редким, но преобладающим сценарием. Полная ошибка читается как:
"Netscape is not supported please used internet explorer "
Чтобы решить эту проблему, вы должны учитывать следующие моменты:
Internet Explorer Driver
работает в реальном браузере и поддерживает Javascript.Add On
Internet Explorer
Если вам нужно использовать обязательные Add On
, (для всех пользователей IE9, IE10, IE11 и Windows 8)
1. Open the desired website in Internet Explorer
2. Go to "Compatibility View settings" (image shown below)
3. In a dialog box add your website in the list.
e.g. if you are trying to use "ssconline.nic.in" , then add "nic.in" in the list
Selenium Client
вы используете?Java
/JavaScript
?