C# Ta Webbrowser Kullanımı Hakkında (Yardım)
-
ben web browserda açtığım bi sayfa bi linke tıklatıyorum kullanıcı adı ve sifre bolumu geliyo ama onun geldiğini anlamak için gerekli kontrolu yapamadım nasıl yapabilirim?
wbrw.Navigate("site");
kod = wbrw.Document.Body.InnerHtml.ToString();
if (kod.Contains("USERNAME") == true)
{
giris();
}
yazdığım kod bu ama kontrolu yapmıyor bu kodu butonun click eventine koydum aynı anda çalıştıgı için kontrol yapmıyor
-
sayfayı navigate ettikten sonra
while (wbrw.ReadyState != WebBrowserReadyState.Complete){
Application.DoEvents();
}
altına bunu ekle bundan sonra işlemlerini gerçekleştir. -
FCN bunu yazdı:
-----------------------------sayfayı navigate ettikten sonra
while (wbrw.ReadyState != WebBrowserReadyState.Complete){
Application.DoEvents();
}
altına bunu ekle bundan sonra işlemlerini gerçekleştir.
-----------------------------sagolasın hocam oldu bu şekilde
-
hocam bişey daha sorabilir miyim ?webbrowser navigate i mesela form_load işleminde peş peşe birden fazla kullanabilir miyim ya da id si olmayan linke başka hangi yöntemle tıklayabilirim?
-
kajmerpac bunu yazdı:
-----------------------------hocam bişey daha sorabilir miyim ?webbrowser navigate i mesela form_load işleminde peş peşe birden fazla kullanabilir miyim ya da id si olmayan linke başka hangi yöntemle tıklayabilirim?
-----------------------------
id si olmayan linke tıklamak için htmlagilitypack diye bir sınıf var . onla rahatlıkla sayfadaki a tagındaki ne var ne yok çekersin. daha sonra örneğin link bu "<a href=#> yazı </a>"
HtmlElementCollection links = webBrowser.Document.GetElementsByTagName("A");
foreach (HtmlElement link in links)
{
if (link.InnerText.Equals("yazı"))
link.InvokeMember("Click");
}
bu tarz bişi iş görür sanırım -
sagol cevabın için ama sıkıntı surda oluyor form_load işleminde hem siteye girip hemde butona tıklamaya calısıyorm site gec acıldıgı için butonu bulamıyor ve hata veriyor bunu nasıl duzeltcem?
-
tamam işte form load eventında navigate ettiriosun hemen sonra ilk postumda yazdıgım kodu kullan webbrowserdaki işlem tamamlanınca butonu tıklattır yani
form_load(...)
{
webbrowser1.navigate(site);
while(readystateblala)
application.doevents();
tıklama işlemleribla bla bla
}
ordaki while işlemimiz webbrowser tam olarak hazır oluncaya kadar işlemin devam etmesini sağlıyor. -
readXMLData();
wbrw.Navigate("site");
while (wbrw.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.OptionFixNestedTags = true;
if (htmlDoc.DocumentNode != null)
{
HtmlAgilityPack.HtmlNode bodyNode = htmlDoc.DocumentNode.SelectSingleNode("//body");
}
HtmlElementCollection links = wbrw.Document.GetElementsByTagName("A");
foreach (HtmlElement link in links)
{
if (link.InnerText.Equals("Hareket "))
link.InvokeMember("Click");
}
benim yazdıgım kodda bu ama son kodda hata veriyor mantık hatası büyük ihtimalle okuyamadıgı için
