Soru & Cevap

C# Webbrowser ile ilgili Hata

20.03.2017 - 10:14

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);
                }
            }

 

215 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user serdarxaydin
serdarxaydin
09.02.2018 - 01:30
72yunuskaya aynı sorunu bende yaşıyorum çözüm üretebildiniz mi? Paylaşırsanız çok memnun olacağım.
picture-72376-1490010746.jpg
furkanalnıak
20.03.2017 - 03:21

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.

Yunus
20.03.2017 - 10:08
Öncelikle cevabınız için teşekkür ederim bu yöntemleri denedim fakat çalışmadı