2013-10-05 65 views
1

我有一個情況發生在WebBrowser與C#。網頁瀏覽器無法與1點擊

我想通過網站做下載然而,當我第一次點擊,它不起作用,但如果我點擊第二次它的作品。

我該如何解決這個問題。 真誠。

代碼:

public Form1() 
    { 
     InitializeComponent(); 
    } 


    private void button1_Click(object sender, EventArgs e) 
    { 

     webBrowser1.Document.GetElementById("youtube-url").SetAttribute("value", textBox1.Text); 
     webBrowser1.Document.GetElementById("submit").InvokeMember("click"); 
     webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted); 
     label3.Text = "Video Alındı , indirme işleminin hazır olması bekleniyor"; 
    } 

    void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
    { 
     HtmlElementCollection col = webBrowser1.Document.GetElementsByTagName("a"); 
     String link = ""; 
     foreach (HtmlElement el in col) 
     { 
      if (el.InnerText == "Download") 
      { 
       link = el.GetAttribute("href"); 
       Download(link); 
       label3.Text = "Video indiriliyor"; 
      } 
     } 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     webBrowser1.ScriptErrorsSuppressed = true; 
     webBrowser1.Navigate("http://www.youtube-mp3.org/tr"); 
    } 

    void Download(String link) 
    { 
     WebClient downloader = new WebClient(); 
     downloader.DownloadFileAsync(new Uri(link),@"D:\a.mp3"); 
     downloader.DownloadProgressChanged += new DownloadProgressChangedEventHandler(downloader_DownloadProgressChanged); 
    } 

    void downloader_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e) 
    { 
     progressBar1.Value = e.ProgressPercentage; 
     label3.Text = "Video İndiriliyor : " + progressBar1.Value + "%"; 
     if (progressBar1.Value == 100) 
      label3.Text = "Video İndirildi"; 
    } 
+2

「它不起作用」不能提供足夠的信息。怎麼了? –

+0

我不知道:)我希望它會被下載,但不會被下載。 夠了嗎?因爲我不知道會發生什麼? :( – CWOmer

+0

通過你的調試器運行你的代碼,並找出發生了什麼 – PhoenixReborn

回答

2

你從調查的問題是什麼阻止你自己。除非您在主機應用程序中內部處理它們,否則禁止WebBrowser控件的腳本錯誤(與您使用ScriptErrorsSuppressed = true時一樣)不是一個好主意。請執行以下操作:

然後,希望您可以在模擬按鈕單擊並調試時找出發生了什麼問題。