232-301-2136
kursat.arslan@deu.edu.tr
Buca Eğitim Fakültesi
Sosyal Bina, 2.Kat 207, İzmir
  • Ana Sayfa
  • Özgeçmiş
  • Hakkımda
  • Blog
  • İletişim
  • Ders Kayit
  • Giriş
    E-mail Adresi:
    Şifre:
"Tarihe Not: Evet doğrudur. Teknoloji çoğu zaman eğitimde "fondöten" etkisi yapar. Ama birgün mutlaka yüzünüzü yıkamanız gerekir ve aynada gerçeği bütün çıplaklığı ile görürsünüz. Bugün olanda tam budur. (22 Şubat 2020)" Prof. Dr. Soner Yıldırım
Kürşat ArslanDokuz Eylül Üniversitesinde Dr. Öğretim Üyesi olarak çalışıyorum.
SPSS ve Arduino özel ilgi alanım.

c# (.net)'de webbrowser nesnesi kullanımı ve web sayfasına veri gönderme ve butona tıklama

Yayınlanma: 6 Ekim, 2020 Güncellenme: 9 Ekim, 2020

!Bu makale yeterli düzeyde detay içermediğinden yeni başlayanlar için uygun olmayabilir.

Tanım

c#'da bir web sayfanı forma yüklemek yani chrome ya da explorer benzeri bir tarayıcı oluşturmak için webbrowser nesnesini kullanmamız gerekir. Bu nesne aracılığıyla, kolaylıkla bir web sayfasını yükleyebilir ve sayfalar arasında genizebilirsiniz. Ancak projelerde genellikle ihtiyaç duyulan nokta, yüklenen web sayfasına müdahale etmek ya da arka planda bir web sayfasını çalıştırarak sonuçları kullanıcıya iletmektir. Örneğin, google'dan arama yapmak istediğinizde, kullanıcıdan aranacak kelimeyi alıp sonuçları istediğiniz gibi manüpüle edip kullanıcıya istediğiniz şekilde gösterebilirsiniz.

Örnek Kullanım

Öncelikle ben aşağıdaki gibi bir fonksiyon yazdım. Bu fonksiyon, gelen adres bilgisini kontrol etmek için kullandım. Daha sonra buton'a tıkladığımda, textBox1'de yazılan adres değeri webbrowser'a yüklenecek.

private void gezin(String adres)
{
    if (String.IsNullOrEmpty(adres)) return;
    if (!adres.StartsWith("http://") &&
        !adres.StartsWith("https://"))
    {
        adres = "http://" + adres;
    }
    try
    {
        webBrowser1.Navigate(new Uri(adres));
    }
    catch (System.UriFormatException)
    {
        return;
    }
}


private void button1_Click(object sender, EventArgs e)
{
    //webBrowser1.ScriptErrorsSuppressed = true;
    gezin(textBox1.Text);
}

Yukarıdaki fonksiyonu kullanmadan doğrudan, aşağıdaki satırı da yazabilirsiniz. Buda işinizi görür.

webBrowser1.Navigate(new Uri(adres));

daha sonra web sayfası yükleme işi tamamlandığında, form üzerinde bir butona tıklayarak sayfa içerisinde yer alan istediğiniz input öğresinin içerisine istediğiniz yazıyı yazabilirsiniz. Aşağıdaki kod, yüklenen web sayfasında className'i form-control olan input'a textbox2'de yazan metni eklemek için kullanılabilir. Burada web sayfasında birden fazla input olduğu için ve elimde bir ID olmadığı için, classname üzerinden yaptım.

private void button2_Click(object sender, EventArgs e)
{
    var links = webBrowser1.Document.GetElementsByTagName("input");
    foreach (HtmlElement link in links)
    {
        //MessageBox.Show("test");

        if (link.GetAttribute("className") == "form-control")
            link.InnerText = textBox2.Text;

    }
}

benzer şekilde form içerisinde başka bir butona tıklayarak, web sayfasında bulunan bir butonun tıklama olayıda tetiklenebilir. Bunun için aşağıdaki gibi bir kod kullanılabilir.

private void button3_Click(object sender, EventArgs e)
{
    var butons = webBrowser1.Document.GetElementsByTagName("button");
    foreach (HtmlElement link1 in butons)
        link1.InvokeMember("click");
}

Örnek ekran görüntüsü

Yukarıdaki kodları kullanarak aşağıdaki gibi bir ekran elde edebilirsiniz.

Umarım faydalı olmuştur. Selamlar.

! Bu gibi yazıların çoğalması için site içerisinde yer alan bir reklama lütfen gözatın

Bir Yorum Bırak

Bu site Galloglu.com üzerinden, öğrencilerim ve diğer ilgili herkes için online içerik geliştirme amaçlı tasarlanmıştır. Özellikle SPSS ve ARDUINO blog yazıları, sizin bu konuları örnekler üzerinden daha iyi anlamanız için basitleştirilerek anlatılmıştır. Sitede yer alan içerikler, düzenli olarak kontrol edilerek hatalardan kaçınılmaya çalışılmaktadır, diğer taraftan bilgilerin tümüyle doğruluğu garanti edilemez.
Designed and Created by Kursat Arslan. Copyrigt © 2016-2020
Bu site Kürşat Arslan tarafından tasarlanmış ve geliştirilmiştir.
Bütün hakları saklıdır.Sitede yer alan bütün içerikler galloglu.com'a aittir.