无头浏览器,如selenium,但不打开实际的浏览器

时间:2012-03-02 21:05:20

标签: c# php python selenium headless-browser

我在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 个答案:

答案 0 :(得分:1)

有一个无头浏览器项目已经存在,但它不支持名为simplebrowser的javascript。如果这是可以接受的,你可以抓住那个浏览器项目然后你必须做一些自定义的工作。设置该浏览器以在C#中实现IWebDriver接口。解决所有的休息。一旦你得到它编译,那么你应该能够将IWebdriver实例化为一个新的SimpleBrowser。

IWebDriver driver = new SimpleBrowser();

我并不是说这不会是一些工作但你会有一个完全可定制的无头浏览器使用C#但是是开源的。这是简单broswer的来源。

https://github.com/axefrog/SimpleBrowser

答案 1 :(得分:0)

您可以使用Web浏览器winforms控件并将脚本注入其中。

答案 2 :(得分:0)

这看起来像是Ruby库capybara-webkit(https://github.com/thoughtbot/capybara-webkit)或我自己的小型Python抓取库dryscrape的完美用例,是基于前者:)

两者都使用相同的C ++后端来创建基于QtWebkit的内存无头浏览器。我只是在Linux上测试过它,但它也应该在Windows上进行一些努力。人have done it with capybara-webkit,至少。{/ p>