Несколько веб-драйверов IE: сеанс теряется при нажатии на ссылку / кнопку, которая открывает всплывающее окно - PullRequest
0 голосов
/ 04 апреля 2019


Я запускаю несколько (2) веб-драйверов IE вместе (для тестов на стороне пользователя и администратора). Когда InternetExplorer WebDriver нажимает на ссылку / кнопку, которая открывает модальное всплывающее окно, страница входа открывается в новом окне (ненормально).


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


Я нашел ту же проблему в этой ссылке , я принял решение там, но я все еще не решил проблему, и я получаюокно ввода вместо ожидаемого окна. см. Этот скриншот

  • Моя версия IE - 11.
  • Мой Selenium.WebDriver - 3.141.0.0
  • My ie webdriveris IEDriverServer_x64_3.141.5


Мой InternetExplorerOptions:

 private static InternetExplorerOptions ieOptions = new InternetExplorerOptions
        {
            EnsureCleanSession = true ,
            EnableNativeEvents = true ,
            RequireWindowFocus = true ,
            EnablePersistentHover = true ,
            ForceCreateProcessApi = true ,
            BrowserCommandLineArguments = "-framemerging -private"
        };

Я добавил ключи реестра:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FrameMerging\(DWORD)00000000

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\TabProcGrowth\(DWORD)00000000

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE\iexplorer.exe\(DWORD)00000000

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE\iexplorer.exe\(DWORD)00000000


Отредактировано:

По ссылкам Deepak-MSFT я понимаю, что проблема вызвана более чем одним экземпляром веб-драйвера IE.

Я пытался уничтожить драйвер IE также, добавив в код параметр ConfirmCleanSession = true, а также вручную, выполнив следующие команды из командной строки (перед запуском теста);

taskkill / F / IM iexplore.exe / T
taskkill / F / IM IEDriverServer.exe / T


Но это не помогло, когда я настроил 2 веб-драйвера IE для совместной работы.

(Когда я пытался запустить тест только на одном драйвере - онотлично работал!)


Буду признателен за помощь в решении проблемы!

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

Эта проблема связана с причудой самого IE и того, как драйвер создает всплывающее окно для браузера.

Обходной путь - убедиться, что при запуске сеанса с драйвером не запущены процессы iexplore.exe.

Ссылки:

(1) сеансовый файл cookie теряется при переходе по ссылке, открывающей окно с помощью window.open ()

(2) сеансовый файл cookie теряется при переходе по ссылке, открывающей окно с помощью window.open ()

0 голосов
/ 10 апреля 2019

Мое решение:

Разделите контрольный пример на два теста:


Первый тест -

Используйте веб-драйвер IE для первого сайта (в моем случае - сторону администратора), а параллельно используйте другой веб-драйвер (который не вызывает проблем, как веб-драйвер Chrome) для второго сайта (в моем случае - сторона администратора)


И второй тест -

Используйте другой веб-драйвер выше для первого сайта и параллельно используйте IE-драйвер IE для второго сайта.


Итак, я рассмотрел тесты в IE для двух сайтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...