Я искал то же самое, и ответ jvmenen помог мне. Однако с тех пор, как был дан этот ответ, в WatiN произошли некоторые обновления, поэтому мне пришлось немного переписать класс помощника, чтобы он соответствовал последней версии WatiN (в настоящее время 2.0.20).
WatiN больше не содержит функцию IE.AttachToIE
, поэтому мне пришлось немного ее изменить. Кроме того, я также сделал вспомогательный класс с использованием обобщений, чтобы можно было использовать любой тип браузера, а не только IE (я думаю, что IE и Firefox теперь поддерживаются WatiN, и Chrome должен появиться).
Так что, если кто-то еще ищет это, вот моя версия IEStaticInstanceHelper
(теперь называется StaticBrowserInstanceHelper
):
class StaticBrowserInstanceHelper<T> where T : Browser
{
private Browser _browser;
private int _browserThread;
private string _browserHwnd;
public Browser Browser
{
get
{
int currentThreadId = GetCurrentThreadId();
if (currentThreadId != _browserThread)
{
_browser = Browser.AttachTo<T>(Find.By("hwnd", _browserHwnd));
_browserThread = currentThreadId;
}
return _browser;
}
set
{
_browser = value;
_browserHwnd = _browser.hWnd.ToString();
_browserThread = GetCurrentThreadId();
}
}
private int GetCurrentThreadId()
{
return Thread.CurrentThread.GetHashCode();
}
}
Надеюсь, это кому-нибудь поможет:)