Selenium ile Web Sitesine Bağlanma, Veri Girişi ve Tıklama (C#)

(Selenium ile ilgili başlangıç eğitimleri http://webpazarı.com adresinden ve youtube kanalından alınmıştır. İstediğim zamanda istediğim veriye anlık olarak ulaşabilmek açısından metin haline getirerek bloguma eklemiş bulunmaktayım. Emeğe saygı açısından oradan izlemeniz rica olunur.)

Selenium’u projemize dahil ettikten sonra ilk örneğimize başlayalım. Bu örnek için aşağıdaki tasarımı oluşturdum.

Başlangıç olarak basit bir tasarım oluşturdum. Textbox’a yazılan metni ara butonuna basıldıktan sonra google adresine giderek arama çubuğuna yazacak ve ara butona tıklayacak.

Kodlamaya geçmeden önce google’ı açalım ve gerekli verilerimizi öğrenelim. İhtiyacımız olan iki yolu bulmamız gerekiyor metni gireceğimiz alan ve tıklayacağım butonun ulaşım yolu. Ayrıca tarayıcınıza ChroPath uzantısını kurmanızı tavsiye ederim. (Benzer başka eklentiler de olur) Biz bu uygulamada name iki yol ile de yapacağız uygunluğuna göre ikisini de kullanabilirsiniz.

Google’ı açtıktan sonra mause sağ tık -> incele diyerek chrome öge denetlemeyi açıyoruz. Arama çubuğunun ve butonun name özelliğini öğreniyoruz. (Bu örnek için textbox’ın name değerini (“q”), arama butonunun ise XPath değerini (/html…..) kullandım.)

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

Gerekli kütüphaneleri projemiz tanısın diye çağırıyoruz. Daha sonra aşağıdaki kodları projemize ekliyoruz. Hepsinin yanında ne işe yaradıkları yazmaktadır.


        private void button1_Click(object sender, EventArgs e)
        {
            ChromeDriverService servis = ChromeDriverService.CreateDefaultService();//chrome servisinin varsayılan ayarları ile servis nesnesini canlandırdık
            servis.HideCommandPromptWindow = true; //konsolu göster/gizle varsayılan ayarını true yaptık
            IWebDriver tarayici = new ChromeDriver(servis); //tarayıcı isminde chrome tarayıcısı oluşturduk ve tarayıcıya yapılan ayarları atadık.
            //Buraya kadar olan işlemler proje çalıştığında otomatik olarak çıkan ChromeDriver konsol ekranını gizlemeye yarıyor.

            tarayici.Navigate().GoToUrl("https://www.google.com.tr/"); //olusturulan tarayıcı tırnak içerisindeki adrese yönlendirdik

            IWebElement element = tarayici.FindElement(By.Name("q")); //açtığımız tarayıca name'ı "q" olanı yani arama kutucuğunu buldu ve element nesnesine atadı
            element.SendKeys(textBox1.Text); //atanan nesneye textbox1 deki metinleri gönderdi

            IWebElement element2 = tarayici.FindElement(By.XPath("/html/body/div[2]/div[2]/form/div[2]/div[1]/div[3]/center/input[1]")); //arama butonunu buldu ve element2 nesnesine de atadı
            element2.Click(); //element iki nesnesine(butona) tıkladı
        }

Gördüğünüz gibi otomatik olarak tarayıcıdan istediğimiz siteye giderek seçili alanlara veri girişi yapmayı ve tıklamayı gördük. Hayal gücümüzü kullanarak şimdi bile basit bir işlem için bot yazılabilir. Bir sonraki yazımda web sitesinden veri çekmeyi göstereceğim.

İyi çalışmalar.

Yorum bırakın