- Yasaklandı
- #1
Herkese Selamlar,
Selenium bir Web Otomasyon aracı olarak kullanılmasının yanı sıra C# üzerinden kendi yazdığınız web sitenizi test etmek veya başka web siteleri üzerinden uygulama geliştirmek için kullanılabilir. Yani Web tabanlı oyunlarda işlemlerinizi sizin yerinize halledecek botlar yazabilirsiniz. Bu konuda anlatmak istediğim Selenium'a giriş olacak.
En önemli özelliklerinden biri Forma eklenen WebBrowser aracı ie tabanlı bir tarayıcı ve bir çok yerde desteklenmeyebiliyor. Bu yüzden hem sayfadaki scriptlerin tam çalışması için hemde içeriklerin tam görüntülenmesi için Selenium en uygun çözüm. Python üzerinde de anlatım yapacağım ileride ilgisi olan arkadaşlar varsa python syntax olarak c# tan daha basit bir dil olduğu için burada yapacağımız çoğu işlemi daha kısa kodlarla yapmamıza olanak tanıyor olacak.
Kullanmaya başlayalım o zaman
Projenize nasıl eklersiniz önce bunu anlatayım
NuGet Paketlerinde Gözat sekmesinden indirmemiz gereken iki paket şunlardır
Projemizde kütüphaneleri kullanmak için
Kurulumumuz tamamlandı kodlamaya geçebiliriz.
Öncelikle bilmeniz gerekenler
İlk olarak WebDriver dediğimiz şeyler her tarayıcı için mevcut neredeyse (Opera, Firefox, Chrome ve Safari gibi).
Bir WebDriver nesnesi oluşturmak yani aşağıdaki tek satırlık kod bize bir tarayıcı açar
İkincisi Web sayfalarına yönlendirme yapmamız gerekmektedir. Aynı VS'nun WebBrowser aracı gibi Navigate() kullanıyoruz.
Tarayıcımızı açtık facebook.com a yönlendirme yaptık buraya kadar her şey güzel.
Peki biz bu siteye nasıl giriş yapılmasını sağlayacağız; Web sayfasındaki elementlerin className, Id, name yada XPath değerlerini bilmemiz lazım.
Karşımıza iki seçme fonksiyonu çıkıyor biri "FindElement()" tekil elementleri seçmemize yarıyor.
Diğeri "FindElements()" bu da tahmin edeceğiniz üzere çoğul elementleri seçmemize yarıyor.
Bazı sitelerde Id ile elementleri tek tek seçebiliriz bunun için kullanacağımız kod
Bazen ise id değeri olmaz onun yerine class veya name kullanırlar onlar için ise
Bir tane de FindElements() ile birden fazla element seçelim. Burada element sayısı 1 olmadığı için "var" kullandık.
Tabi CSS Selector ve XPath ile de seçimler yapabilirsiniz.
Her elemente XPath kullanarak ulaşabilirsiniz. Bazılarımız için yeni bir terim olabilir o yüzden açıklayayım.
XPath bir Elemente en açık şekilde ulaşmamıza yarayan genelde XML de kullanılan bir standarttır.
Kısaca örnek vermek gerekirse //input[@id="email"] bu ufak kod id'si email olan input elementine ulaşmamızı sağlar.
Uzun bir örnekte verelim pekişsin iyice
//a[@href="/pages/create/?ref_type=registration_form"] href değeri bu olan bir a elementine ulaşmamıza yarıyor bu kod.
Tabi bunu sizin yapmanıza gerek yok bi Chrome eklentisi kullanarak bunları otomatik oluşturabilirsiniz.
Bi elemente sağ tıklayıp RexPath tuşuna basarak bu kodlara ulaşabilirsiniz sizin için de daha kolay olur.
Facebook'a giriş yapmak için yazdığımız toplam kod
Merak ettiklerinizi, alırsanız hataları veya eksik anlattığım şeyler varsa sorabilirsiniz.
Selenium bir Web Otomasyon aracı olarak kullanılmasının yanı sıra C# üzerinden kendi yazdığınız web sitenizi test etmek veya başka web siteleri üzerinden uygulama geliştirmek için kullanılabilir. Yani Web tabanlı oyunlarda işlemlerinizi sizin yerinize halledecek botlar yazabilirsiniz. Bu konuda anlatmak istediğim Selenium'a giriş olacak.
En önemli özelliklerinden biri Forma eklenen WebBrowser aracı ie tabanlı bir tarayıcı ve bir çok yerde desteklenmeyebiliyor. Bu yüzden hem sayfadaki scriptlerin tam çalışması için hemde içeriklerin tam görüntülenmesi için Selenium en uygun çözüm. Python üzerinde de anlatım yapacağım ileride ilgisi olan arkadaşlar varsa python syntax olarak c# tan daha basit bir dil olduğu için burada yapacağımız çoğu işlemi daha kısa kodlarla yapmamıza olanak tanıyor olacak.
Kullanmaya başlayalım o zaman
Projenize nasıl eklersiniz önce bunu anlatayım
Bağlantıları görmek için lütfen
Giriş Yap
NuGet Paketlerinde Gözat sekmesinden indirmemiz gereken iki paket şunlardır
Bağlantıları görmek için lütfen
Giriş Yap
Projemizde kütüphaneleri kullanmak için
C#:
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
Kurulumumuz tamamlandı kodlamaya geçebiliriz.
Öncelikle bilmeniz gerekenler
İlk olarak WebDriver dediğimiz şeyler her tarayıcı için mevcut neredeyse (Opera, Firefox, Chrome ve Safari gibi).
Bir WebDriver nesnesi oluşturmak yani aşağıdaki tek satırlık kod bize bir tarayıcı açar
C#:
IWebDriver driver = new ChromeDriver();
İkincisi Web sayfalarına yönlendirme yapmamız gerekmektedir. Aynı VS'nun WebBrowser aracı gibi Navigate() kullanıyoruz.
C#:
driver.Navigate().GoToUrl("https://www.facebook.com/");
Tarayıcımızı açtık facebook.com a yönlendirme yaptık buraya kadar her şey güzel.
Peki biz bu siteye nasıl giriş yapılmasını sağlayacağız; Web sayfasındaki elementlerin className, Id, name yada XPath değerlerini bilmemiz lazım.
Karşımıza iki seçme fonksiyonu çıkıyor biri "FindElement()" tekil elementleri seçmemize yarıyor.
Diğeri "FindElements()" bu da tahmin edeceğiniz üzere çoğul elementleri seçmemize yarıyor.
Bazı sitelerde Id ile elementleri tek tek seçebiliriz bunun için kullanacağımız kod
C#:
IWebElement element = driver.FindElement(By.Id("IDDegeri"));
Bazen ise id değeri olmaz onun yerine class veya name kullanırlar onlar için ise
C#:
IWebElement element = driver.FindElement(By.ClassName("ClassDegeri"));
IWebElement element2 = driver.FindElement(By.Name("NameDegeri"));
Bir tane de FindElements() ile birden fazla element seçelim. Burada element sayısı 1 olmadığı için "var" kullandık.
C#:
var elements = driver.FindElements(By.ClassName("ClassName"));
//bu elementlere erişim sağlamak için aşağıdaki döngü kullanılabilir
foreach(IWebElement element in elements) {
//işlemler
}
Tabi CSS Selector ve XPath ile de seçimler yapabilirsiniz.
Her elemente XPath kullanarak ulaşabilirsiniz. Bazılarımız için yeni bir terim olabilir o yüzden açıklayayım.
XPath bir Elemente en açık şekilde ulaşmamıza yarayan genelde XML de kullanılan bir standarttır.
Kısaca örnek vermek gerekirse //input[@id="email"] bu ufak kod id'si email olan input elementine ulaşmamızı sağlar.
Uzun bir örnekte verelim pekişsin iyice
Tabi bunu sizin yapmanıza gerek yok bi Chrome eklentisi kullanarak bunları otomatik oluşturabilirsiniz.
Bağlantıları görmek için lütfen
Giriş Yap
Bi elemente sağ tıklayıp RexPath tuşuna basarak bu kodlara ulaşabilirsiniz sizin için de daha kolay olur.
Facebook'a giriş yapmak için yazdığımız toplam kod
C#:
IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://www.facebook.com/");
IWebElement Email = driver.FindElement(By.Id("email"));
IWebElement Pass = driver.FindElement(By.Id("pass"));
IWebElement GirisButonu = driver.FindElement(By.XPath("//input[@value and @data-testid]"));
Email.SendKeys("[email protected]");
Pass.SendKeys("1234567890");
GirisButonu.Click();
//İşlemleriniz bittikten sonra driver.Quit(); ile çıkmayı unutmayın
Merak ettiklerinizi, alırsanız hataları veya eksik anlattığım şeyler varsa sorabilirsiniz.