Безголовый браузер, как селен, но который не открывает настоящий браузер - PullRequest
2 голосов
/ 03 марта 2012

Я создал простое приложение на C #, которое публикует новую ссылку в аккаунте google +, но запускает сам браузер. Я в порядке с C #, Python, языками PHP, может быть, даже с чем-то другим.

Я не могу использовать класс C # WebClient, так как многие взаимодействия основаны на JS, поэтому мне нужно каким-то образом эмулировать браузер.

Это мой код C # для селена, чтобы вы могли понять, чего я пытаюсь достичь.

static void Main(string[] args)
{
    IWebDriver driver;
    FirefoxProfile firefoxProfile = new FirefoxProfile();
    driver = new FirefoxDriver();
    driver.Navigate().GoToUrl("https://accounts.google.com/ServiceLoginAuth");
    driver.FindElement(By.Name("Email")).SendKeys("MYEMAIL");
    driver.FindElement(By.Name("Passwd")).SendKeys("MYPASSWORD");
    driver.FindElement(By.Name("signIn")).Click();
    driver.Navigate().GoToUrl("https://plusone.google.com/_/+1/confirm?hl=en&url=http://site.com/");
    System.Threading.Thread.Sleep(10000);
    driver.FindElement(By.ClassName("e-U-a-fa")).Click();
    Console.WriteLine("Done!");
    Console.ReadLine();
}

Ответы [ 3 ]

2 голосов
/ 03 марта 2012

Существует уже существующий безголовый браузерный проект, но он не поддерживает javascript, который называется simplebrowser. Если это приемлемо, вы можете взять этот браузерный проект, и тогда вам придется выполнить какую-то пользовательскую работу над ним. Установите этот браузер для реализации интерфейса IWebDriver в C #. Решение всех перерывов. как только вы получите его для компиляции, вы сможете создать экземпляр IWebdriver для нового SimpleBrowser.

драйвер IWebDriver = новый SimpleBrowser ();

Я не говорю, что это не будет какой-то работой, но у вас будет полностью настраиваемый браузер без головы, который использует C #, но с открытым исходным кодом. Вот источник простой брошюры.

https://github.com/axefrog/SimpleBrowser

0 голосов
/ 03 марта 2012

Это похоже на идеальный вариант использования библиотеки Ruby capybara-webkit (https://github.com/thoughtbot/capybara-webkit) или моей собственной небольшой библиотеки очистки Python, dryscrape , основанной на первом :)

Оба используют один и тот же бэкэнд C ++ для создания автономного браузера в памяти на основе QtWebkit. Я только протестировал его на Linux, но он также должен быть скомпилирован на Windows с некоторыми усилиями. Люди сделали это с помощью capybara-webkit , по крайней мере.

0 голосов
/ 03 марта 2012

Вы можете использовать веб-браузер для управления winforms и добавить в него скрипты.

...