Подтвердить что ты не робот

Как вы получаете WatiN для работы в Windows Server 2008 с IE8?

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

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

Шаги в первой статье, казалось, помогли (закомментируйте ":: 1" в моем файле хостов, поместите мои сайты на надежные сайты и убедитесь, что у моего app.config есть "STA", и он установлен на "копировать, если новый", но они не помогли надежно. Я попробовал код из второго примера, надеясь, что это поможет, но это не так. Я использую версию WatiN версии 2.0 beta 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.");
}

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

Коротко:

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

Я запускаю IE 8 и Visual Studio 2010 в Windows 7.

Ответ 3

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

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

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

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

Ответ 4

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

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

Ответ 5

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