pillinetwork hesabınızla giriş yapın.

c# webbrowser kullanım teknikleri

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:

1
webBrowser1.Navigate(new Uri("http://www.google.com.tr/"));

webbrowserımızın DocumentCompleted olayına aşağıdaki kodu yazın:
1
2
3
4
5
6
7
8
9
10
11
12
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 ettik
2-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önderdik
3-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ştirin
http://www.w3schools.com/jsref/tryit_view.asp?filename=tryjsref_onfocus
butonumuzun click olayına aşağıdaki kodu yazın:

1
webBrowser1.Navigate(new Uri("http://www.w3schools.com/jsref..."));

webbrowserımızın DocumentCompleted olayına aşağıdaki kodu yazın:
1
2
3
4
5
6
7
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.

Spacer
Spacer
/* senolyaya yazdı. 09 Mart 2010 18:45. 1 yorum var */

Yorumlar

merhabalar..Bir siteden getelementbyid("ad") ile aldigim degeri textbox1 elementine nasıl aktarabilirim? buttonun click eventine bastıgımda sitedeki inputtextteki value yu textbox1 e atamak istiyorum.Ve atıyorum sifreleri karakter var **** gibi bu değeri de textbox'a atabiliyor muyuz? teşekkürler..

üye olunpillinetwork sitelerine yorum ekleyebilmek ve daha fazlası için, üye olun ya da giriş yapın.

Bu Yazıyı Tutanlar

Bu yazıyı rapor et. Kural dışı içeriğe rastladığınızda editörlerimize rapor ederek müdahale edilmesini sağlayabilirsiniz. (Hangi durumlarda rapor edebilirim?)

Bu site

Nokta ve pilli ortak yapımı olan kodaman.org hep birlikte içerik üretip gelirini yazarları ile paylaştığımız kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.

pilliilan

son yorumlar

arama

pillinetwork