Watin IE становится видимым при использовании LINQ, где

В общем, я пытаюсь найти все скрытые окна IE, это должно быть легкой задачей для LINQ. Итак, я попробовал простое где:

var Instances = IE.InternetExplorers().Where(x => x.Visible == false);

но когда я звоню InternetExplorers() это делает все экземпляры видимыми и не дает результатов. Поэтому я попытался по-другому, где:

var Instances = IE.InternetExplorers().Where(x => x.Title != "");

Это также делает все экземпляры видимыми, но, очевидно, получает все открытые окна IE.

Так есть ли способ выбрать все невидимые экземпляры, не делая их видимыми, или я делаю что-то не так?

1 ответ

Решение

Я нашел ответ, я посмотрел на источник Ватин и обнаружил, что InternetExplorers() метод просто возвращает new IECollection(true); так что я посмотрел на IECollection конструктор и обнаружил, что WatiN.Core.Native.InternetExplorer.ShellWindows2() возвращает все браузеры.

В итоге я сделал это:

var allBrowsers = new WatiN.Core.Native.InternetExplorer.ShellWindows2().Where(x => x.Visible == false);

foreach (SHDocVw.IWebBrowser2 internetExplorer in allBrowsers)
{
    //do somthing.
}
Другие вопросы по тегам