2012-03-02 26 views
2

我在C#中建立了一个简单的应用程序,它将新链接发布到google +帐户,但是它启动了实际的浏览器本身。我很喜欢C#,Python,PHP语言,甚至还有其他的东西。像selenium这样的无头浏览器,但并没有打开实际的浏览器

我不能使用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(); 
} 

回答

0

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

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

+0

Okey,我会在ubuntu linux上试试你的库,谢谢。如果我会遇到一些问题,我会问在这里,你会希望帮助:) – sed 2012-03-02 21:32:18

+0

@Qmal:当然。如果你在Github页面上写了一个问题,如果你遇到错误或者有问题,情况会更好。 – 2012-03-02 21:36:48

0

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

1

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

IWebDriver driver = new SimpleBrowser();

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

https://github.com/axefrog/SimpleBrowser

+0

我知道了,今天早些时候尝试过,非常好的项目,并且易于使用,但是我需要javascript :( – sed 2012-03-02 21:50:46

+0

唯一的其他选项是使用带有硒的HTMLBrowser对象,但这需要从Selenium服务器对象创建一个jar文件,但是它确实模拟了一个真正的浏览器,并且是基于100%javascript的,所以不用说它支持javascripts,但是C#没有很好的支持,并且它的文档很少说。 – CBRRacer 2012-03-03 04:41:54