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.
}