- Yasaklandı
-
- #1
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://www.facebook.com/");
IWebElement element = driver.FindElement(By.Id("IDDegeri"));
IWebElement element = driver.FindElement(By.ClassName("ClassDegeri"));
IWebElement element2 = driver.FindElement(By.Name("NameDegeri"));
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
}
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("kullanici@gmail.com");
Pass.SendKeys("1234567890");
GirisButonu.Click();
//İşlemleriniz bittikten sonra driver.Quit(); ile çıkmayı unutmayın
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
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//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.
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("kullanici@gmail.com"); 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.
İnternet üzerinden videoları var bakabilirsinSelenium ile proxy kullanımını anlatabilir misin?
İnternet üzerinden videoları var bakabilirsin
Türkçe çok olmasada ingilice fazlaca kaynak var
Fikir için sağolYakında bir uygulama paylaşacağım orda useragent referer proxy kullanımını göstereceğim
Anlattım bile buradan okuyabilirsin (C# Mini Seriler #2 [Selenium User Agent, Proxy])Selenium ile proxy kullanımını anlatabilir misin?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?