2012-07-15 43 views
3

我可以导航到Gmail,但是我想要做一些简单的操作,例如输入信用卡并单击登录按钮。C# - 使用Awesomium与Gmail进行互动

private void btnSubmit_Click(object sender, EventArgs e) 
{  
    btnSubmit.Enabled = false;   
    webGmail.LoadURL("http://www.gmail.com"); 

    webGmail.LoadCompleted += ExecuteSomething; 
} 

private void ExecuteSomething(object sender, EventArgs eventArgs) 
{ 
    webGmail.ExecuteJavascript(@"<script src = 'http://code.jquery.com/jquery-latest.min.js' type = 'text/javascript'></script>"); 
    webGmail.ExecuteJavascript(@"$('#Email').val('foo');"); 
    webGmail.ExecuteJavascript(@"$('#Passwd').val('bar');"); 
    webGmail.ExecuteJavascript(@"$('#signIn').click();"); 
} 

什么也没有发生。我知道使用Chrome的开发者工具,你不能修改页面上的任何东西。但是有没有填充表格的方法?

还有其他更好的无头浏览器吗?实际上我需要一个支持Web控件的控件,我可以将它放到我的表单中,以便我可以看到发生了什么。这是强制性的

+0

您应该使用IMAP和/或Gmail的API。 – SLaks 2012-07-15 17:36:42

+0

不,对于这种类型的应用程序,这是不可能的,但谢谢。 – PaulM 2012-07-15 17:49:08

回答

1

我最近遇到了类似的问题。我尝试过cefsharp,awesomium,open-webkit-sharp,geckofx。奇怪的是,最先进的是WebBrowser。它允许您直接使用C#执行几乎所有的活动。例如,单击C#中的提交按钮,您只能在WebBrowser中进行提交。如果你仍然想使用替代引擎,我推荐open-webkit-sharp,它是最先进的(尽管它与单击按钮有相同的问题)。

+0

WebBrowser的问题是,我无法让它与在动态呈现的Ajax化网站一起工作。 WebBrowser适用于按需加载的页面,然后其内容位于DOM中。 – PaulM 2012-07-15 23:44:48

+0

实际上,可以使用ajax(尽管这是一个大问题,没有实现与ajax相关的事件)。必要时您可以随时获得实际的DOM。顺便说一句,您可以为任何元素添加事件处理程序。 – 2012-07-15 23:51:25