Не удалось запустить браузер IE с помощью Selenium2 (Webdriver) с Java
Я не могу запустить браузер IE для запуска моих автоматических тестов селена, написанных на Java. Я использую Windows 7 и IE 9. Ниже мой код:
Пожалуйста, найдите вложение. ![enter image description here]()
public class GoogleNews {
private WebDriver driver;
private String baseUrl;
private StringBuffer verificationErrors = new StringBuffer();
ArrayList al = new ArrayList();
@Before
public void setUp() throws Exception {
//driver = new FirefoxDriver();
driver =new InternetExplorerDriver();
baseUrl = "https://news.google.co.in/";
}
@Test
public void testApple() throws Exception {
driver.get(baseUrl);
}
}
Ответы
Ответ 1
Он должен установить одинаковый уровень безопасности во всех зонах. Для этого выполните следующие действия:
- Открыть IE
- Перейдите в Инструменты → Свойства обозревателя → Безопасность
- Установить все зоны (Интернет, локальная интрасеть, доверенные сайты, сайты с ограничениями) в один и тот же защищенный режим, включить или отключить, не имеет значения.
Наконец, установите уровень масштабирования на 100%, щелкнув правой кнопкой мыши на шестерне, расположенной в верхнем правом углу, и включив индикатор состояния.
Уровень масштабирования по умолчанию теперь отображается в правом нижнем углу.
Ответ 2
Ну, как говорит трассировка стека, вам нужно будет установить параметры защищенного режима одинаковыми для всех зон в IE. Читайте, почему здесь: http://jimevansmusic.blogspot.in/2012/08/youre-doing-it-wrong-protected-mode-and.html
и быстро, как по одной и той же ссылке: "В IE из меню" Инструменты "(или значок шестеренки на панели инструментов в более поздних версиях) выберите" Параметры Интернета ". Перейдите на вкладку" Безопасность ". в диалоговом окне для каждой зоны вы должны установить флажок" Включить защищенный режим ". Установите значение флажка для того же значения, которое отмечено или не отмечено, для каждой зоны"
Ответ 3
Следующий фрагмент кода Java WebDriver должен работать для запуска IE. Код будет игнорировать настройку параметров защищенного режима для всех зон в браузере IE.
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
File file = new File("D:\\Ripon Al Wasim\\IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
WebDriver driver = new InternetExplorerDriver(capabilities);
driver.get("https://www.google.com/");
Загрузите IEDriverServer и извлеките его в нужное место и установите абсолютный путь (в моем примере выше это было "D:\Ripon Al Wasim\IEDriverServer.exe" )
Ответ 4
- Перейдите к
IE->Tools->Internet Options
.
- Перейдите на вкладку "Безопасность".
- Включить/отключить защищенный режим для всех (Интернет, локальная интрасеть, доверенные сайты и сайты с ограниченным доступом.)
Ответ 5
Чтобы решить эту проблему, вы должны сделать две вещи:
-
Вам нужно будет установить запись реестра на целевом компьютере, чтобы драйвер мог поддерживать соединение с экземпляром Internet Explorer, который он создает.
-
Измените несколько настроек браузера Internet Explorer на этом компьютере (где вы хотите запустить автоматизацию).
1 Настройка ключа реестра/записи:
-
Чтобы установить раздел реестра или запись, вам нужно открыть "Редактор реестра".
-
Чтобы открыть "Редактор реестра", нажмите кнопку Windows + клавишу алфавита r, которая откроет "Запуск окна", затем введите "regedit" и нажмите ввод.
-
Или нажмите кнопку Windows и введите "regedit" в меню "Пуск" и нажмите "Enter". Теперь, в зависимости от типа вашей ОС, следует ли 32/64 бита выполнять соответствующие шаги.
32-разрядная версия Windows: перейдите по этому адресу - "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl" и проверьте ключ "FEATURE_BFCACHE".
64-разрядная версия Windows: перейдите по этому адресу - HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl и проверьте наличие ключа "FEATURE_BFCACHE". Обратите внимание, что подраздел FEATURE_BFCACHE может присутствовать или не присутствовать, и его следует создавать, если он отсутствует.
Важное замечание: Внутри этого ключа создайте значение DWORD с именем iexplore.exe со значением 0.
![Registry Setting]()
2 Изменить настройки браузера Internet Explorer:
-
Нажмите на кнопку настройки и выберите "Свойства обозревателя".
-
В окне "Свойства обозревателя" перейдите на вкладку "Безопасность".
-
Теперь выберите опцию "Интернет" и снимите флажок "Включить защищенный режим" и измените "Уровень безопасности" на низкий.
-
Теперь выберите опцию "Локальная интрасеть" и измените "Уровень безопасности" на низкий.
-
Теперь выберите опцию "Надежные сайты" и измените "Уровень безопасности" на низкий.
![Internet Options]()
- Теперь нажмите кнопку "Применить", может появиться всплывающее предупреждение, нажмите кнопку "ОК" для предупреждения и затем кнопку "ОК" в окне "Свойства обозревателя".
![Save Settings]()
- После этого перезапустите браузер.
Ответ 6
Вместо использования Абсолютного пути для IEDriverServer.exe лучше использовать относительный путь в соответствии с проектом.
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
File fil = new File("iDrivers\\IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", fil.getAbsolutePath());
WebDriver driver = new InternetExplorerDriver(capabilities);
driver.get("https://www.irctc.co.in");
Ответ 7
Для NighwatchJS используйте:
"ie" : {
"desiredCapabilities": {
"browserName": "internet explorer",
"javascriptEnabled": true,
"acceptSslCerts": true,
"allowBlockedContent": true,
"ignoreProtectedModeSettings": true
}
},
Ответ 8
Прежде чем начать с Internet Explorer и Selenium Webdriver Рассмотрите эти два важных правила.
- Уровень масштабирования: должен быть установлен на значение по умолчанию (100%) и
- Настройки зоны безопасности: должно быть одинаковым для всех. Параметры безопасности должны быть установлены в соответствии с разрешениями вашей организации.
Как установить это?
- Просто перейдите в Internet Explorer, сделайте оба материала вручную. Это оно. Не секрет.
- Сделайте это через свой код.
Метод 1:
Возможности DesiredCapabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true);
System.setProperty("webdriver.ie.driver","D:\\IEDriverServer_Win32_2.33.0\\IEDriverServer.exe");
WebDriver driver= new InternetExplorerDriver(capabilities);
driver.get(baseURl);
//Identify your elements and go ahead testing...
Это будет определенно не показывать никаких ошибок, и браузер откроет, а также перейдет к URL-адресу.
НО Этот не будет идентифицировать какой-либо элемент и, следовательно, вы не сможете продолжить.
Почему? Потому что мы просто подавили ошибку и попросили IE открыть и получить этот URL. Однако Selenium будет определять элементы только в том случае, если масштаб браузера составляет 100%. по умолчанию.
Таким образом, окончательный код будет
Метод 2 Прочный и надежный способ:
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true);
System.setProperty("webdriver.ie.driver","D:\\IEDriverServer_Win32_2.33.0\\IEDriverServer.exe");
WebDriver driver= new InternetExplorerDriver(capabilities);
driver.get(baseURl);
driver.findElement(By.tagName("html")).sendKeys(Keys.chord(Keys.CONTROL,"0"));
//Identify your elements and go ahead testing...
Надеюсь, это поможет. Сообщите мне, нужна ли дополнительная информация.
Ответ 9
Хотел поделиться реальным кодом, так как немногие могут все еще не понять, как его реализовать. Это для реализации С# NUNIT. Удачи!
InternetExplorerOptions options = new InternetExplorerOptions();
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
options.IgnoreZoomLevel = true;
driver = new
InternetExplorerDriver("C:\\Users\\stdd\\Desktop\\SLL\\SLLAutomation" +
"\\Clysis\\STGSearch\\STGClaSearch\\Driver\\", options);
driver.Manage().Window.Maximize();