Как заставить WatiN работать на Windows Server 2008 с IE8? - PullRequest
21 голосов
/ 18 июня 2009

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

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

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

Мой код NUnit выглядит следующим образом:

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.");
}

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

Ошибка доступа к ссылке. 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

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

Ответы [ 5 ]

29 голосов
/ 15 октября 2009

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

21 голосов
/ 16 декабря 2010

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

См. Это сообщение в блоге для устранения этой проблемы без запуска Visual Studio с правами администратора.

Кратко:

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

Я использую IE 8 и Visual Studio 2010 в Windows 7.

1 голос
/ 23 июня 2009

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

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

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

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

0 голосов
/ 29 июня 2010

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

0 голосов
/ 13 октября 2009

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

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

...