Программно открывать и закрывать Firefox - PullRequest
1 голос
/ 30 июля 2010

Мне нужно открыть Firefox из моего консольного приложения, поработать с ним, а затем закрыть его через несколько минут.

Я использую Process.Start ("firefox.exe", "myurl");открыть Firefox, что не проблема.Проблема заключается в его закрытии.

Функция CloseMainWindow () обычно работает, но не работает, если у firefox открыто модальное окно (например, окно сообщения «сбой загрузки»).В этом случае я могу вызвать Kill () в процессе, однако это выглядит грязно.

Кроме того, если я вызову Kill () для процесса, то в следующий раз, когда Firefox откроется, откроется вкладка «Восстановление сеанса», что не здорово.Я мог бы попытаться отключить функцию восстановления сеанса, которая могла бы обойти эту проблему.Тем не менее, я все еще обеспокоен тем, что такое убийство ffx может вызвать другие проблемы.

Кто-нибудь знает хороший способ сделать это?Является ли «самый чистый» способ попытаться вызвать указатель модального окна, закрыть его, а затем повторить попытку CloseMainWindow ()?

Ответы [ 3 ]

4 голосов
/ 30 июля 2010

Может быть, Ватин может помочь вам

public void SearchForWatiNOnGoogle()
{
    using (var browser = new Firefox("http://www.google.com"))
    {
        browser.TextField(Find.ByName("q")).TypeText("WatiN");
        browser.Button(Find.ByName("btnG")).Click();
        browser.Close();

     }
  }
0 голосов
/ 30 июля 2010

AutoIt имеет COM-библиотеку под названием AutoItX, которая может помочь вам легко и надежно справиться с манипулированием окнами из других процессов, включая их закрытие ...

Это, прежде всего, язык сценариев, поэтому, если вы недовольны использованием COM из .Net, вы также можете скомпилировать сценарий AutoIt в EXE-файл и запустить его из приложения .Net.

http://www.autoitscript.com/

0 голосов
/ 30 июля 2010
...