2009-06-18 3 views
21

Моя проблема в том, что я не могу получить простой тест WatiN, чтобы надежно работать на моей машине разработки под управлением Windows Server 2008 и IE8.Как вы получаете WatiN для работы на Windows Server 2008 с IE8?

Я видел пару хороших сообщений об этом, но у меня все еще есть проблемы. Вот сообщения:

Шаги в первой статье, казалось, чтобы помочь (закомментировать ":: 1" в файле мои хозяева, положить мой сайт (ы) в доверенных сайтах и ​​убедитесь, что у моего app.config есть «STA» и установлен «copy if newer», но они не помогли надежно. Я попробовал код со второго примера, надеясь, что это поможет, но это не так. Я использую версию WatiN версии 2.0 бета 1.

My NUnit code lo oks как показано ниже:

protected Browser Browser { get; set; } 

[TestFixtureSetUp] 
public void SetupPriorToTestsInThisFixture() 
{ 
    Browser = new IE(); 
    Browser.GoTo(Constants.SiteCollectionUrl); 
} 

[TestFixtureTearDown] 
public void TearDownAfterTestsInThisFixture() 
{ 
    if (Browser != null) 
    { 
     Browser.Dispose(); 
    } 
} 

[Test] 
public void WaterThroughThePipes() 
{ 
    Link link = Browser.Link(Find.ByText("Calendar")); 
    bool exists = link.Exists; 
    Assert.That(exists, Is.True, "Could not find 'Calendar' link."); 
} 

То, что я вижу, это то, что иногда (хотя и редко) мой тест проходит. Иногда утверждение терпит неудачу (существует = ложь), иногда я получаю таймаут при попытке открыть браузер, а иногда я получаю сообщение об ошибке, пытающееся получить доступ к ссылке.

Ошибка доступа link.Exists выглядит следующим образом:

MyFixture.WaterThroughThePipes: System.Runtime.InteropServices.COMException: Неизвестный интерфейс. (Исключение из HRESULT: 0x800706B5)

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

Я имею тенденцию видеть разные результаты при запуске в режиме отладки и не работает в режиме отладки.

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

MyFixture (TestFixtureSetUp): WatiN.Core.Native.Mozilla.FireFoxException: Невозможно подключиться к серверу jssh, пожалуйста, убедитесь, что вы правильно установили jssh.xpi плагин ----> System.Net .Sockets.SocketException: соединение не может быть выполнено, потому что целевая машина активно отклонила его 127.0.0.1:9997

Любые идеи? Я действительно не хочу возвращаться к Селену (был там, сделал это), но мне, возможно, придется.

+0

О, я также нашел разные результаты, если я выйти NUnit и вновь открыть его. Я также попробовал пару перезагрузок во время этого процесса, чтобы увидеть, помогло ли это (это не так). –

+2

Можете ли вы попробовать его с помощью Internet Explorer 7? «Интерфейс неизвестен» предполагает, что, возможно, Watin еще не поддерживает IE8 - он определенно не был написан против него. Конечно, это просто (психическая отладка). Проблема с Firefox: вы установили расширение jssh? И вы тоже можете попробовать селен. – devdimi

+0

Как только у вас установлен IE8, я не думаю, что вы можете вернуться в IE7 без установки новой ОС. Я уверен, что есть обходной путь, но это может быть рискованно ... Я могу посмотреть на это. Я не пробовал расширение jssh для Firefox, поскольку Firefox не был моим фокусом, но я, вероятно, дам этот снимок - спасибо за предложение. –

ответ

1

IE8 definatley работает с WatiN, и сделал с момента первого публичного выпуска IE8.

Если что-то работает в отладке, но не при запуске, это обычно указывает на проблему блокировки времени или сервера 2008.

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

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

0

Об ошибке, которую вы видите в firefox ... Это можно преодолеть, установив FireWatir FF plugin. (Или, по крайней мере, это сработало для меня на 3.5.3)

Но, как уже упоминалось, IE поддерживается и в контексте WatiN использование FireFox - не волшебное решение.

29

Запуск Visual Studio как администратор

+1

Бинго! У меня было System.Runtime.InteropServices.COMException не было обработано кодом пользователя Message = "Интерфейс неизвестен. (Исключение из HRESULT: 0x800706B5)" ошибка, исходящая из mshtml.HTMLDocumentClass.IHTMLDocument2_get_url() и запуск Visual Studio в качестве администратора, исправил ее ! –

+0

Я столкнулся с этой проблемой при запуске Watin в тесте Xunit через TestDriven.net и запуске VS, когда администратор исправил его. –

+0

Запуск Visual Studio в качестве администратора исправляет проблему во время отладки. Но если я запускаю exe в качестве стандартного пользователя, то он по той же причине не работает. Есть ли решение? – Ikaso

0

Другой вариант, чтобы избежать запуска Visual Studio или NUnit как администратор будет отключить контроль учетных записей на уровне машины, которая не должна быть проблемой безопасности, если вы работаете с не менее привилегии (которые вы должны быть).

21

Я смог получить эту ошибку COM, чтобы уйти - и чтобы мои тесты работали нормально - путем настройки моих настроек безопасности Интернета на «Включить защищенный режим» даже для сайтов локальной интрасети. Этот единственный флажок сделал все возможное. (И мне не нужно запускать Visual Studio в качестве администратора.)

See this blog post для устранения этой проблемы без запуска Visual Studio в качестве администратора.

Кратко:

В Internet Explorer откройте меню Сервис -> Локальная интрасеть и установите флажок> Свойства обозревателя - -> Безопасность "Включить защищенный режим."

Я бегу IE 8 и Visual Studio 2010 на Windows 7.

+0

Это работало отлично и намного приятнее, чем работать администратором, каким я был в прошлом. – Bronumski

+0

Это не сработало для меня, IE9 Win7 64. – mxmissile

+0

Подтверждено. Работал для меня на выигрыше 2008 – lstanczyk