Turkcell | Geleceği Yazanlar

C# Webbrowser ile ilgili Hata

Merhaba arkadaşalr C# windows form ile web browser kullanıyorum ve elimde bulunan bir hesap listesi hesapları listboxa aktarıyorum ve tek tek bu hesaplarla web browserdaki siteye giriş yapıp takipci sayısını çekiyorum fakat şöyle bir sıkıntım giriş yapmaya yarayan kod ile takipci sayısını çeken kodun arasına messagebox koyduğumda siteye giriş yapıldığını gördüğümde tamam dediğimde bilgiyi çekiyor ve bir alt hesaba devam ediyor bu şekil ama messagebox u kaldırıyorum ve o şekil deniyorum çalışmıyor.

for (int i = 0; i < listVeri.Items.Count; i++)
            {
                string[] parcalar;
                parcalar = listVeri.Items[i].ToString().Split(' ');
                HtmlDocument doc = webBrowser1.Document;
                HtmlElement kullanici = doc.GetElementById("username");
                HtmlElement parola = doc.GetElementById("password");
                HtmlElement girisbuton = doc.GetElementById("submit");
                kullanici.SetAttribute("value", parcalar[0]);
                parola.SetAttribute("value", parcalar[1]);
                girisbuton.InvokeMember("click");
                MessageBox.Show("Deneme");
                HtmlDocument bilgiler = webBrowser1.Document;
                HtmlElement takipci= bilgiler.GetElementById("follower");
                if (takipci!= null)
                {
                    string ekle = parcalar[0] + "-" + takipci.OuterText;
                    listTakipci.Items.Add(ekle);
                }
            }

 

    +3

    Furkan Alnıak

    20 Mart 2017

    Merhaba,

    Anlattığın problemin sebebi temel olarak messageBox eklediğinde sayfanın yüklenmesi sen tamam tuşuna basana kadar tamamlanıyor ve sen tamam tuşuna bastığında runtime devam ediyor. Arada kesici bir satır olmayınca yukarıdan aşağıya çalışırken sayfa yüklenmeden işlem yapamadığı için istediğin işlemi yaptıramıyor. Çözüm olarak önce iki şey önerebilirim:

    1. "Takipçi çekiyorum" dediğin kısıma geçmeden önce mevcut sayfanın yüklenip yüklenmediğini aşağıdaki gibi kontrol edebilirsin.

    while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
    
    {
    
    //Sayfa henüz tamamlanmadığı sürece bekleme süresi
    
    }
    //Yapman gereken işlemlerin devamı..

     

    2. Thread sınıfını kullanarak Sleep fonksiyonu ile belirli bir süre işlemleri bekletip daha sonra devam ettirebilirsin.

     

    Kolay gelsin.

      72yunuskaya

      Pzt, 20/03/2017 - 22:08
      Öncelikle cevabınız için teşekkür ederim bu yöntemleri denedim fakat çalışmadı

    0

    Serdar

    09 Şubat 2018

    72yunuskaya aynı sorunu bende yaşıyorum çözüm üretebildiniz mi? Paylaşırsanız çok memnun olacağım.

    Bu soruya cevap vermek için üye olmanız veya giriş yapmanız gerekmektedir.