2012-07-15 44 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