2016-02-02 2 views
2

Selenium Webdriver для Internet Explorer 11 не создает новый дескриптор окна, когда мое приложение открывает новую вкладку.C# IE11 selenium webdriver, Нет новых оконных ручек с новой вкладкой

Проблема похожа на this, что было проблемой с исчезновением оконных ручек на долю секунды, но в моем случае новый дескриптор окна даже не создается в первую очередь.

Я использовал тестовый код с этой ссылкой, чтобы проверить, не исчезли ли дескрипторы окон, но при открытии новой вкладки он никогда не создавал другой дескриптор окна, поэтому тест показывал только первый вывод консоли, а не вторую часть.

Я попытался с помощью:

driver.SwitchTo().Window(driver.WindowHandles.Last()); 

но фокус Селен WebDriver остается на первой вкладке, потому что я считаю, что это не создает новый дескриптор для новой вкладки.

Кроме того, попытался это:

driver.SwitchTo().Window(driver.WindowHandles[1]); 

и что результаты в виде исключения «вне диапазона» и «Индекс был вне диапазона Должно быть неотрицательным и меньше, чем размер коллекции..»

Если я изменил [1] на [0], то, очевидно, я не получаю исключение, потому что фокус просто установлен на первую вкладку.

Основываясь на моем тестировании с тестовым кодом в ссылке, которую я предоставил, и мои собственные попытки, я считаю, что новые ручки окна не создаются.

Я попытался сбросить IE11, а затем изменил настройки, как описано на веб-сайте Selenium, включая добавление раздела реестра, в котором я использовал решение Helium для найденного here.

Кроме того, я прочитал несколько предложений по добавлению веб-сайтов, которые я открываю в список доверенных сайтов в IE, но все равно не иду.

Любая помощь приветствуется. Благодарю.

+0

Такая же проблема через год после. WindowHandles содержит только 1 значение независимо от того, сколько вкладок вы открыли. Но он будет содержать больше значений, если вы откроете новые окна. – Mardok

ответ

0

Вот обходной путь, который мне удалось использовать.

Вы можете использовать javascript для открытия нового окна. Это даст вам ручку.

string javaScript = "window.open('" + url + "','_blank', 'resizable=yes, scrollbars=yes, titlebar=yes, width=1280, height=680, top=10, left=10');"; 

jsExecutor = (IJavaScriptExecutor)ieDriver; 
jsExecutor.ExecuteScript(javaScript); 
Смежные вопросы