2013-07-14 177 views
0

我想通過在兩個文本框中輸入我的憑據登錄到我的YouTube帳戶。 我也有一個按鈕和一個瀏覽器。這是youtube login page:按鈕的網站登錄GetElementById(...)

代碼:

webBrowser1.Document.GetElementById("Email").SetAttribute("value",credentials[0]); 
webBrowser1.Document.GetElementById("Passwd").SetAttribute("value", credentials[1]); 
webBrowser1.Document.GetElementById("signIn").InvokeMember("submit"); 

所以我現在的問題是,它並沒有點擊按鈕的符號。如果我點擊開始,它會自動輸入我的電子郵件和密碼,但它不會點擊登錄按鈕。

有誰知道爲什麼?

回答

1

你可以嘗試在signIn按鈕上使用jQuery調用click事件。

此外,該方法名稱不提交,名稱是簽到

+0

是的,我現在才發現它。謝謝你,先生! –

1

我之前但是在一些步驟已經做到了這一點。

using mshtml; 

    static private SHDocVw.WebBrowser_V1 Web_V1; 
    Form1_Load() 
    { 
     Web_V1 = (SHDocVw.WebBrowser_V1)webBrowser1.ActiveXInstance; 
    } 

    webBrowser1_DocumentComplete() 
    { 
     HTMLDocument pass = new HTMLDocument(Web_V1.Document); 
     HTMLInputElement passBox = (HTMLInputElement)pass.all.item("Passwd", 0); 
     passBox.value = "Password"; 
     HTMLInputElement logBox = (HTMLInputElement)pass.all.item("Email", 0); 
     logBox.value = "Email"; 
     HTMLInputElement submit = (HTMLInputElement)pass.all.item("signIn", 0); 
     submit.click(); 
    } 

這對我來說是有效的。

0

使用InvokeMember("click")

但是,如果你遇到類似的問題,然後檢查是否存在AJAX功能仍在執行與否。

即使文檔加載事件被激發,如果仍有Ajax調用仍在加載,那麼您可能無法獲得完整的Document直到Ajax函數完成。

爲此,您需要等待直到它被加載,然後調用該成員。 Check this article關於如何等待ajax加載完成。