Osman KURT

Yazılım Uzmanı | MVC Eğitmeni

C# da Webbrowser Kullanımı Textbox'ı Otomatik Doldurma Ve Butona Otomatik Basma

Arkadaşlar nerede kullanacağınızı bilemem ama yararlı bir kod paylaşacağım size. Nerede kullanacağınızı bilmiyorum çünkü bazı arkadaşlar bu kodu pek de iyi şeyler için kullanmıyorlar. Güvenlik açıkları olan siteler için tam bir baş belası işin aslı.

Bu yazımızda c# form tabanlı çalışacağız.İlk olarak formumuza 1 adet web browser,1 adet textbox ve 1 adet buton ekleyelim. Toolbax'ımızda mevcuttur. Şimdi buraya kadar  tamamladıksa asıl konuya geçelim gözümüze hemen daha önceden localde oluşturduğumuz web projesini çalıştıralım ve adres satırında ki adresi formumuza eklediğimiz webbrowser'ımızın url kısmına ekleyelim. URL kısmıa ekledikten sonra projeyi çalıştırdığımız da webbrowser kısmında localde ki sitenin çalıştığını göreceksiniz. Şimdi hangi tarayıcıyı kullanıyorsunuz bilmiyorum ama kaynak kodundan yada öğeyi denetle alanından sayfada ki textbox ın adını öğrenmemiz gerek ki değeri atayalım. Öğrendikten sonra birde butonumuzun adını aynı kısımdan öğrenmemiz lazım. Bunları da öğrendikten sonra atl kısımda ki kodlarımız işimizi görecektir. Formumuzda bulunan butona çift tıklayarak alt kısmıda ki kodları yazalım.

 

webBrowser1.Document.GetElementById("textboxın adı").InnerText = textBox1.Text;
foreach (HtmlElement el in webBrowser1.Document.All)
{
if (el.Name == "buton ismi")
{
el.InvokeMember("click");
}
}

ya da;

 

webBrowser1.Document.GetElementById("email").InnerText = epostaAdresi;
webBrowser1.Document.GetElementById("pass").InnerText = sifre;
webBrowser1.Document.Forms[0].InvokeMember("submit");


 

Arakadaşlar kodlarımız bu kadar. Bu kodlar webbrowser içinde ki textbox a bizim formumuza eklediğimiz textboxın içindeki değer gelecek ve butona otomatik şekilde basılacak ve işlem kendiliğinden gerçekleşecek. Tahmin edersiniz ki bunu bir döngüye soktuğumuz da nasıl tehlikeli bir yapı olduğunu görüyoruz.

Arkadaşlar bu kodları yararlı olması için paylaştım kötü amaçlar için kullanmayacağınızdan eminim.

Görüşmek üzere

Osman KURT

Yazılım Geliştirici ve Grafiker

 

Yorumlar (11) -

  • Ozan

    5.11.2012 06:52:50 | Yanıtla

    Hocam çok güzel ama formun içerisindeki file nesnesine nasıl erişirim? Yani mesele şu; resim upload olayını nasıl yaparım? FTP erişimim olmadığını var sayın lütfen.

    • osmankurt

      5.11.2012 10:36:48 | Yanıtla

      Merhaba Ozan;

      Öncelikle fileupload üzerinde hiç bunun denemesini yapmadım. Bakmak lazım ama fazla bir fark olduğunu düşünmüyorum. Üzerinde çalışma yaptıkdan sonra ancak dönebilirim sana.

  • hkan

    21.11.2012 18:06:54 | Yanıtla

    webBrowser1.Document.GetElementById("email").InnerText = epostaAdresi;
    webBrowser1.Document.GetElementById("pass").InnerText = sifre;
    webBrowser1.Document.Forms[0].InvokeMember("submit");
    sürekli refresh yapıyor neden birde InnerText = "kullanıcı adı "; verince
    Object reference not set to an instance of an object. hatası alıyorum değişkene atadım yine aynı
    bu arada formun loadına yazdım açınca direk giriş yapsın diye

    • osmankurt

      22.11.2012 03:05:29 | Yanıtla

      Merhaba Hakan,
      Aynı olayı birde buton altında çalıştırmayı deneyebilir misin. Load olayında bende hata alıyordum button click altın da kullanmam gerekti. Muhtemelen sorun çözülecektir.

      • Nokta

        28.12.2012 16:28:16 | Yanıtla

        Sanırım sorun webbrowserin yüklenmemesinden kaynaklanıyor . Sayfa Tam yüklenmediği için sistem "id" veya "name" değerleri girili nesneleri bulamadığı için hata veriyor ..

        • osmankurt

          30.12.2012 15:36:38 | Yanıtla

          Aynı şekil de katılıyorum çok teşekkürler yorumunuz için.

  • Hüseyin

    29.6.2013 08:57:56 | Yanıtla

    Textboxları doldurdum,butona otomatik bastım,açılan sayfada bir (linke) tıklayıp o linkin içine girmem gerekiyor ama ne yaptıysam linke ,otomtik form doldurup otomatik submit yapan butonla erişemedim.Yardımcı olursanız sevinirim.

  • ali

    20.2.2014 18:40:22 | Yanıtla

    submit butonu yok entera basmak gerek onu nasıl yapıcaz

    • osmankurt

      20.2.2014 22:13:11 | Yanıtla

      Merhaba Ali,
      Muhtemelen onu da klavyeden enter tuş nosu olan 13 ASCI kodlaması ile yapıcaz. Internet'de bununla alakalı birçok örnek mevcut bakabilirsin.  

  • Tayfun Emre GÜLEÇ

    15.12.2014 16:14:28 | Yanıtla

    Selamlar Osman Bey ;

    Peki Html bir site var. Bu sitedeki buton ile sayfa değişiyor ve reklam açılıyor.
    Html sitemde 1 buton ve 1 textbox var. Butona tıklayınca  << reklamı geç desin ve geçtikten sonraki tarayıcının adresini kopyalayıp textbox'a yapıştırsın >> . Bunu yapabilmemiz mümkün müdür ?

  • hüseyin

    7.10.2017 12:45:54 | Yanıtla

    instagram için yapmak istiyorum ama id yok class lı nasıl yapabilirim

Loading