Я экспериментирую с WatiN для нашего тестирования пользовательского интерфейса, я могу получить тесты на работу, но я не могу заставить IE закрыться после этого.Проблема с WatiN to IE
Я пытаюсь закрыть IE в своем классе для очистки кода, используя пример WatiN IEStaticInstanceHelper technique.
Проблема, кажется, прикрепление к нити IE, который раз из: (. _ieHwnd является дескриптор IE сохраняется, когда IE запускается первый раз)
_instance = IE.AttachTo<IE>(Find.By("hwnd", _ieHwnd));
Это дает ошибку:
Class Cleanup method Class1.MyClassCleanup failed. Error Message: WatiN.Core.Exceptions.BrowserNotFoundException: Could not find an IE window matching constraint: Attribute 'hwnd' equals '1576084'. Search expired after '30' seconds.. Stack Trace: at WatiN.Core.Native.InternetExplorer.AttachToIeHelper.Find(Constraint findBy, Int32 timeout, Boolean waitForComplete)
Уверен, что я должен упустить что-то очевидное, есть ли у кого-нибудь идеи об этом? Благодаря
Для полноты, статический помощник выглядит следующим образом:
public class StaticBrowser
{
private IE _instance;
private int _ieThread;
private string _ieHwnd;
public IE Instance
{
get
{
var currentThreadId = GetCurrentThreadId();
if (currentThreadId != _ieThread)
{
_instance = IE.AttachTo<IE>(Find.By("hwnd", _ieHwnd));
_ieThread = currentThreadId;
}
return _instance;
}
set
{
_instance = value;
_ieHwnd = _instance.hWnd.ToString();
_ieThread = GetCurrentThreadId();
}
}
private int GetCurrentThreadId()
{
return Thread.CurrentThread.GetHashCode();
}
}
И чистый вверх код выглядит следующим образом:
private static StaticBrowser _staticBrowser;
[ClassCleanup]
public static void MyClassCleanup()
{
_staticBrowser.Instance.Close();
_staticBrowser = null;
}
У меня проблема с тем же, но я не использую ни MSTest, ни MbUnit. Что-нибудь еще в вашей среде изменилось, что, возможно, решило это? –
Я думаю, что дело доходит до того, как тесты выполняют потоки, это описывает различные настройки; http://watin.sourceforge.net/apartmentstateinfo.html Как я его изложил, я перехожу к действиям на странице и т.д. через FixtureSetUp, а затем закрыл браузер в FixtureTearDown. WatiN не играла хорошо с другими конфигурациями. –