Visual Studio toolbox’ını açıpta webbrowser ikonunu görmeyeniniz yoktur. Peki nedir bu Webbrowser ?Bu tool kullanıcının işletim sistemi üzerinde yer alan internet explorer altyapısını kullanarak uygulamalarımız içinde web sitelerini açabilmemizi sağlayan basit ve bazen can kurtarıcı bir araçtır. Şimdi size web sitelerini açan bu tool ile kendi browserınızı yapmayı öğretmekten ziyade olayın biraz daha derinlerine inip yaptığımız uygulamamız ile açılan web sitesi üzerindeki alanlara nasıl ulaşacağımızı ve onlara nasıl veri gönderip işlem yaptıracağımızı anlatmaya çalışacağım.Bunun içinde 2 uygulama örneği vereceğim .1- web sitesi üzerindeki field ları doldurma,field lar içindeki verileri okuyabilme ve formları gönderebilme işlemlerini yapacak örneğimiz .2- Web sitesi üzerindeki actionları tetikleyeceğiz (javascript çalıştırma)İlk Örneğimiz :
Bunun için kobay bir web sitesine ihtiyacımız var ben google.com’u seçtim . Şimdi google’ın arama field’ına textbox ımıza yazdığımız yazıyı yazan ve formu submit’ ettikten sonra bize yüklenmiş sonuç sayfasını açan uygulamamızı yazalım.Bunun için yeni bir windows form açıp üzerine 1 buton 1 textbox ve 1 webbrowser ekleyin ve webbrowser ın visible özelliğini false yapın.butonumuzun click olayına aşağıdaki kodu yazın:webBrowser1.Navigate(new Uri(“http://www.google.com.tr/”));
webbrowserımızın DocumentCompleted olayına aşağıdaki kodu yazın:System.Windows.Forms.HtmlDocument document = this.webBrowser1.Document;if (webBrowser1.Url.ToString() == “http://www.google.com.tr/”){document.All[“q”].SetAttribute(“value”, textBox1.Text);document.Forms[0].InvokeMember(“submit”);}else{webBrowser1.Visible = true;string alinanbilgi=document.All[“q”].GetAttribute(“value”);MessageBox.Show(“Google arama alanında “+alinanbilgi+” yazıyor.”);}
Şimdide ne yaptığımızdan bahsedelim:1-buton tıklandığında webbrowser url sini google a set ettik2-Webbrowser a www.google.com.tr adresi url de varsa ve yüklenme tamamlanmışsa google ın arama alanına textbox içindeki bilgiyi yazdık ve google formunu gönderdik3-arama tamamlanmış ve google arama bitirmişse browserımızı gösterdik ve arama alanındaki bilgiyi messagebox ile gösterdik.web sitesi üzerine veri yazmada ve web sitesinden veri okumada en çok dikkat etmeniz gereken nokta web sitesinin tamamen yüklenmiş olmasınıdır. site yüklenmeden getattribute ve setattribute çalışmayacaktır ve uygulamanız hata verecektir.2.Örneğimiz:
bu uygulamamızdada formumuz üzerindeki nesnelere tanımladığımız olayları tetikleyeceğiz.Bu örneğimiz içinde w3schools u seçtim örnekleri arasından onfocus örneğini uygulamamız aracılığıyla tetikleyeceğiz ve first name alanının rengi değişecek last name ise değişmeyecek bu örneğimiz için yukarıda yaptığımız uygulamada webbrowser ımızın visible özelliğini true yapın. ve ilgili bölümleri aşağıdaki şekilde değiştirin;ve urlleri aşağıdaki ile değiştirinhttp://www.w3schools.com/jsref/tryit_view.asp?filename=tryjsref_onfocusbutonumuzun click olayına aşağıdaki kodu yazın:webBrowser1.Navigate(new Uri(“http://www.w3schools.com/jsref…”));
webbrowserımızın DocumentCompleted olayına aşağıdaki kodu yazın:System.Windows.Forms.HtmlDocument document = this.webBrowser1.Document;if (webBrowser1.Url.ToString() == “http://www.w3schools.com/j…..”){document.All[“fname”].SetAttribute(“value”, textBox1.Text);document.All[“fname”].InvokeMember(“onFocus”);document.All[“lname”].SetAttribute(“value”, textBox1.Text);}
Buradada invokemember işlemimizi yaptırdığımız kodumuzdur. Belirttiğimiz id ye sahip field ın onfocus olayını tetiklemekte kullandık ve javascripti çalıştırmayı başardık.Sonsöz:
Faydalı olmuş olması dileğiyle yazılarımı yanlızca kodaman.org sitesinde yazdığımı belirtmek isterim. Diğer sitelerdeki yazılarım buradan kopyalanmaktadır ve izin alınmamıştır.Birdahaki yazımda görüşmek üzere hepinize mutlu günler dilerim.