Возможно, экземпляр IE не удаляется должным образом.Вы захотите проверить диспетчер задач и посмотреть, сколько открытых процессов IEXPLORE.EXE у вас работает.Если у вас их больше двух, я бы предложил реализовать блок using и затем снова проверить диспетчер задач:
using (IE ie = new IE(URLs.mainURL)
{
...
}
Еще лучшим решением было бы использование метода AttachTo после инициализации «основного» браузера.переменная экземпляра:
private IE ie = new IE();
public void btnStartBrowsing_Click(object sender, EventArgs e)
{
using ie2 = ie.AttachTo<IE>(Find.ByUrl(URLs.mainURL))
{
...
}
}
ОБНОВЛЕНИЕ: Поскольку вам необходим доступ к браузеру на время сеанса, я настоятельно рекомендую использовать объект-одиночка для размещения объекта браузера:
public sealed class BrowserIE
{
static readonly IE _Instance = new IE();
static BrowserIE()
{
}
BrowserIE()
{
}
public static IE Instance
{
get { return _Instance; }
}
}
Браузер открывается только один раз, и вы имеете к нему доступ, когда вам это нужно, поскольку вам не нужно создавать его вручную.Чтобы использовать его, вы просто вызываете свойство Instance каждый раз, когда вам нужен доступ к браузеру:
BrowserIE.Instance.GoTo(URLs.mainURL);
Divs headerDivs = BrowserIE.Instance.Divs.Filter(Find.ByClass("header"));