Internet Explorer 8 64bit и Selenium не работают - PullRequest
21 голосов
/ 05 октября 2009

Я пытаюсь запустить тесты на селен. Тем не менее, каждый раз, когда я пытаюсь запустить тесты, которые должны запускать IE, я получаю сообщение об ошибке в строке 863 htmlutils.js. Оно говорит, что я должен отключить блокировщик всплывающих окон. Дело в том, что я пошел в IE tools-> turn of popup block.

Так что он отключен, и я получаю эту ошибку.

Есть ли что-то еще, что мне нужно отключить. На самом деле я даже не знаю, какая версия Internet Explorer работает, так как я использую 64-битную версию Windows 7 Pro. Поэтому, когда я использую IE, я использую 64-битную версию, но я понимаю, что если сайт или что-то подобное не поддерживает 64-битную версию, он переходит на 32-битную.

Так что не уверен, что мне нужно сделать, чтобы это работало.

Это строки, где он делает

function openSeparateApplicationWindow(url, suppressMozillaWarning) {
    // resize the Selenium window itself
    window.resizeTo(1200, 500);
    window.moveTo(window.screenX, 0);

    var appWindow = window.open(url + '?start=true', 'selenium_main_app_window');
    if (appWindow == null) {
        var errorMessage = "Couldn't open app window; is the pop-up blocker enabled?"
        LOG.error(errorMessage);
        throw new Error("Couldn't open app window; is the pop-up blocker enabled?");
    }

Где хранится это сообщение log.error? Может быть, я тоже могу это опубликовать.

Ответы [ 8 ]

18 голосов
/ 08 декабря 2009

У меня была похожая проблема на Vista и IE8 Я получил бы то же сообщение об ошибке

Couldn't open app window; is the pop-up blocker enabled?"

Запуск моего дистанционного управления в качестве администратора не был для меня вариантом, а также плохой идеей с точки зрения безопасности. Таким образом, в конце концов мне удалось решить эту проблему, изменив браузер с "* ietha" на "* iexploreproxy" grid_configuration.yml

hub:
  port: 4444
    ...
    - name: "Internet Explorer 8 on Vista"
      browser: "*iexploreproxy"
    ...

В качестве альтернативы вы можете изменить строку браузера из кода:

ISelenium selenium = new DefaultSelenium("localhost", 4444, "*iexploreproxy", "http://www.google.com/");

Работает как шарм. Остается только один вопрос: влияет ли это каким-либо образом на результаты тестовых случаев? Пока нет, но я обновлю этот ответ на случай, если это произойдет.

11 голосов
/ 08 июня 2010

Я столкнулся с этим в Windows 7 64bit.

Мое решение было:

  1. Отключить всплывающий блок. - Выберите «Инструменты / Блокировка всплывающих окон / Отключить блокировку всплывающих окон»

  2. Отключить защищенный режим IE. - Снимите флажок «Сервис / Свойства обозревателя / Безопасность / Включить защищенный режим»

Было бы лучше просто отключить защищенные режимы для известных доверенных хостов / адресов. Я оставлю это как упражнение для читателя.

8 голосов
/ 12 ноября 2009

У меня была такая же проблема. Я запускал сервер Selenium RC от имени администратора, и все работало нормально.

0 голосов
/ 16 февраля 2010

Тест можно запустить при отключении режима безопасности Интернета. Не знаю правильное название для него, но на голландском языке это beveiligde modus. Я попытался изменить настройки безопасности, чтобы дублировать этот режим безопасности, но не смог найти правильные настройки для него. Поэтому он должен блокировать больше, чем вы можете установить вручную.

0 голосов
/ 01 февраля 2010

Если вы делаете это из JavaScriptMVC, есть ссылка, которую нужно изменить в \ jmvc \ plugins \ test \ drivers \ selenium.js:

1) Измените iexplore на iexploreproxy, и вы получите лучшие результаты:

    msie : (/iexploreproxy/i).test(browserStartCommand),

2) На этом этапе вы обнаружите, что по-прежнему появляется сообщение об ошибке всплывающего окна, но запущен отдельный экземпляр IE. Оставьте это окно IE открытым и перезапустите тесты, но не Selenium.

3) Затем окна должны отображаться в нужном месте, но IE выдает предупреждение об активном содержимом раздражающего блока. Разрешите контенту запускаться и перезапускать тесты, но не сам Selenium.

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

0 голосов
/ 09 января 2010

У меня была такая же проблема на Windows 7 64bit IE8. Первым шагом было отключение блокировщика всплывающих окон IE. Затем в строке состояния появилось сообщение о том, что «на этой странице заблокированы всплывающие окна. Нажмите клавишу« Ctrl », чтобы разрешить всплывающие окна».

Оказывается, панель инструментов Google предоставляла эту функцию. Отключение это решило проблему. Вид> Панели инструментов> Google для переключения.

Джон.

0 голосов
/ 17 ноября 2009

У меня была такая же проблема, и я нашел другое решение, которое работает для меня. Просто используйте параметр * iexploreproxy в browserString.

Я использовал:

selenium = new DefaultSelenium("localhost", 4444, "*iexploreproxy C:/Program Files/Internet Explorer/iexplorer.exe", "http://www.bbc.co.uk/");

Я надеюсь, что это работает и для других:)

0 голосов
/ 09 ноября 2009

Я тоже испытываю эту проблему на 64-битном компьютере с Windows 7, пытаясь запустить на нем Selenium для тестирования и приложения ASP .Net MVC, написанного на C #.

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

Вот строка, которую я изменил:

selenium = new DefaultSelenium("localhost", 4444, "*chrome C:/Program Files (x86)/Mozilla Firefox/firefox.exe", "http://www.bbc.co.uk/");

В идеале мне бы хотелось, чтобы это работало в Internet Explorer 8, но если на данный момент я смогу начать работу над тестами, а потом снова переключиться на использование IE, то отлично.

Надеюсь, это поможет вашей проблеме со всем этим.

...