Selenium Nedir? Selenium - C# ile Bot Yapımı

Ayberk Cakar
3 min readSep 4, 2020

--

Merhaba,bu yazımda Selenium nedir, hangi alanlarda kullanılır, terminolojisi basit olarak nasıldır, C# ile selenium nasıl kullanılır, basit bir bot nasıl yapılır, verilerimizi database’imize nasıl ekleriz, botumuzu nasıl otomatize edebiliriz gibi soruların cevaplarına değineceğim. Umarım sizin içinde faydalı olur 😊.

Selenium Nedir? Nerelerde kullanılır?

Selenium’u tanımlayacak olursak bir “Browser Automation (Tarayacı Otomasyon) ” aracı diyebiliriz, yani web sitelerinin bazı test adımlarını , sizin belirleyeceğiniz şekilde web tarayıcınız üzerinden otomatik şekilde oluşturmanızı ve işletmenizi sağlayan bir araçtır.

Selenium’u çeşitli programlama dilleri ile yazabilirsiniz; Python,Java,C#,Ruby,JavaScript,Kotlin vb.

Selenium Mantığını Kavrayalım

Selenium web siteleri üzerinde test işlemleri gerçekleştirebilmek için; gerekli Input’lara veri girebilir, web sitesi üzerindeki verileri alabilir, Buton’lara tıklayabilir. Yani client’in yapabildiği her işlemi gerçekleştirebilir.

Bu yöntem ile test işlemleri gerçekleştirebildiğimiz gibi web sitelerinden istediğimiz verileri de alabiliriz.

Selenium için Gerekli Kurulumlar

Gerekli kurulumlar için Visual Studio üzerinden NuGet Paketlerine giriyoruz.

Selenium.WebDriver’ı indiriyoruz.

Ben Selenium.Chrome.WebDriver’ı kurdum siz istediğinizi kurabilirsiniz; Firefox.WebDriver, InternetExplorer.WebDriver…

Selenium Terminolojisi

ChromeOptions ve ChromeDriverService method’ları ile ChromeDriver için istediğimiz ayarlarımızı yapıyoruz, Ardından bu ayarlarımızı ChromeDriver’a parametre olarak atıyoruz.

Not: Web Driver’ımızı görünmez çalıştırmak istiyorsak , yani web browser’ımızın açılmadan işlemlerimizin yapılmasını istiyorsak; ”- -headless” olarak ayarlarımızda belirtmeliyiz.

  • Window.Maximize() → pencere boyutunu maksimum yapmamızı sağlar.
  • Navigate().GoToUrl(“https://…”) → istediğimiz web sitesine gitmemizi sağlar.
  • FindElement() → Web sitesinin HTML’i üzerinde arama yapabilmemizi sağlar.

Arama için;

  • By.Xpath(“/html/body/form/div/div[2]/input”) → Html üzerinden aldığımız Xpath’i kullanabiliriz.
  • By.Name(“btnK”) → Html üzerinden aldığımız Name’i kullanabiliriz.
  • By.ClassName(“RNmpXc”) → Html üzerinden aldığımız Class ismini kullanabiliriz.
  • By.Id(“gb_71”) → Html üzerinden aldığımız Id’i kullanabiliriz.
  • By.CssSelector(“form>div>span.break-words>div#RNmpXc”) → Html üzerinden istediğimiz yapının CssSelector’ını takip ederek yazabiliriz.
  • Not: ClassName için “ . “ , Id için “ # ” kullanıyoruz.
  • .SendKeys(“…”) → Input’lara veri girmemizi sağlar
  • .Click() → Tıklanabilir yapılara tıklamamızı sağlar
  • .Submit() → Submit yapılara tıklamamızı sağlar

ReadOnlyCollection<IWebElement> datas = WebDriver.FindElements(By.ClassName("break-word"));

  • Örnek üzerinden açıklayacak olursak , bu yapı ile Html üzerinde Class ismi “break-word” olan bütün verileri “datas” içerisine topluyor.
  • Örnek kod yapısı ile penceremizin Scroll’unu aşağı indirebiliyoruz. Yapıyı ScrollBy() ile aşağı-yukarı, sağa-sola oynatma işlemi yapabiliriz.
  • Webdriver.Quit() → Webdriver’ı sonlandırıyoruz.

Uygulama: Google Üzerinden Hava Durumu Bilgisi Çekmek

Verileri Oracle Database’e Kaydetme

Ben projemde Database olarak Oracle Database’i kullandım, bunu da sizler ile paylaşmak istedim. Siz dilediğiniz Database’i kullanabilirsiniz.

  1. ADIM: Oracle.ManangedDataAccess Paketini kururuyoruz

2. ADIM: Oracle Connection’a Database Bilgilerini Dolduruyoruz

3. ADIM: Database’e Data Eklemek İçin Gerekli Query’i Yazıyoruz

Botumuzu Otomatize Çalıştırmak

Yazmış olduğumuz botu belirli zamanlarda (Günlük,Haftalık,Saatlik vb.) çalıştırmak isteyebiliriz. Bunun için basit bir çözüm var. Bilgisayarımızda bulunan Windows Task Scheduler ( Windows Görev Zamanlayıcı ) aracı ile hem bilgisayarımızda veya server’da çalışmasını istiyorsak, bir Windows Server’da bu işlemi gerçekleştirebiliriz.

  1. ADIM: Yeni Görev Oluşturuyoruz

2. ADIM: Tetikleyici Ayarlarını Oluşturuyoruz

3. ADIM: Çalıştırmak İstenilen Eylemi Oluşturuyoruz

Okuduğunuz için teşekkür ederim. İyi Çalışmalar 😊

--

--