Selenium with PowerShell – Login Test

Want create site? Find Free WordPress Themes and plugins.

Merhaba Arkadaşlar bu yazımda size PoweShell ile DevOps duyasında test aracı olarak kullanılan Seleniumu nasıl beraber çalıştıracağınızı göstereceğim. Öncelikle Selenium bir kütüphanedir ve bu kütüphaneyi desteklediği diller üzerinde çağırıp, çalıştırabilirsiniz.

Selenium Nedir

Selenium kod tabanlı bir test aracıdır. Yazdığınız kodlar ile kendi oluşturduğunuz web siteleri belirli senaryolara göre test edebilirsiz. Test olarak kullanımının dışında otomasyon aracı olarak da kullanılabilir.

Desteklenen Yazılım Dilleri

Desteklediği dilleri aşağıdaki tabloda bulabilirsiniz ayrıca https://www.selenium.dev/downloads/ url üzerinden güncel Selenium kütüphanesini indirebilirsiniz.

Bir dakika. Başlık ve tablo uyumsuz gibi ? Desteklenen diller arasında PowerShell görünmüyor? Evet arkadaşlar desteklenen diller arasında PowerShell görünmüyor fakat bilmeniz gereken bir nokta var PowerShell altyapısal olarak .NET kütüphanelerini kullanabilir. C# ile entegre olan her kütüphane PowerSell ile kullanılabilir. Ekstra olarak biliyoruz ki PowerShell artık (Yaklaşık 2 senedir) Open Source ve bütün işletim sistemlerinde çalışır durumda.

Gereksinimler

Evet arkadaşlar gereksinimleri indirdikten sonra bütün gereksinimleri aynı klasör içerisinde tutalım. Selenium WebDriver indirdikten sonra aşağıdaki resimde /lib/net45 klasörünün içerisindeki dll dosyalarını ve chromedriver uygulamasını aynı klasör içerisinde konumlandıralım.

Dosyalarımızı aynı klasörde topladıktan sonra senaryomuzu düşünerek sonrasında PowerShell ile yazım aşamasına geçebiliriz. Ben senaryo olarak basit bir şekilde LinkedIn sitesine login olmayı deneyeceğim.

İlk olarak PowerShellin Selenium kütüphanesini tanıyabilmesi için kütüphaneyi indirdiğimiz dosyalar üzerinden import edelim. Aşağıdaki komut dizisi indirdiğimiz dosyaları PowerShell üzerine import edecektir. Ekranda “DDL başarılı bir şekilde import edildi” yazısını görmelisiniz.

try
{
    $WebDriverPath = "$env:USERPROFILE\Desktop\PowerShell - Selenium\WebDriver.dll" 
    Add-Type -Path   $WebDriverPath -ErrorAction Stop
    Write-Host "DLL başarılı bir şekilde import edildi." -ForegroundColor Green
}
catch
{
    Write-Host "DLL Import edilemedi."
}

İkinci adım olarak indirdiğimiz chromedrier ugulamasının nerede olduğunu Seleniuma bildirmemiz gerekiyor. Burada dikkat etmeniz gereken nokta chromedriver uygulamasının nerede olduğunu göstereceksiniz. Direk olarak uygumanın kendisini göstermiyoruz.

$ChromeDriverPath = "$env:USERPROFILE\Desktop\PowerShell - Selenium\"
$ChromeDriver = [OpenQA.Selenium.Chrome.ChromeDriver]::new($ChromeDriverPath)
$ChromeDriver.Navigate().GoToUrl("https://www.linkedin.com/")

Uygulamayı çalıştırdığımızda Chrome uygulamasının açıldığını ve URL olarak linkedin sayfasına gittiğini göreceksiniz. Burada Username ve Password alanlarını doldurmamız gerekecek fakat Selenium kütüphanesinin bu iki Textbox objesini tanıması için onları adreslemeliyiz. Burada tarayıcıların “Inspect” özelliğini kullanarak TextBox objelerinin adreslerini bulalım.

Aynı şekilde Password ve Sign In butonuda bularak koda entegre edelim.

$ChromeDriver.FindElementById("session_key").SendKeys("test@gmail.com")
$ChromeDriver.FindElementById("session_password").SendKeys("P@ssw0rd1")

Buradaki buton örneğinde olduğu gibi bazen HTML kodlarında her objenin ID veya Name olmayabilir. Bu tür objelerin XPath yolunu kopyalamamız gerekecektir. Aşağıdaki şekilde butonun XPATH kopyalayarak koda entegre edelim.

$ChromeDriver.FindElementByXPath("/html/body/main/section[1]/div[2]/form/button").Submit()

Son olarak giriş yapıldığında gelecek URL göre testimizin başarılı olup olmadığını anlayacak karar yapısını kuralım.

$CurrentURL = $ChromeDriver.Url
if($CurrentURL -like "https://www.linkedin.com/feed/*"){
    Write-Host "Test Başarılı"
}
else {
    Write-Host "Test başarısız."
}

Tüm Kod Bloğu

try
{
    $WebDriverPath = "$env:USERPROFILE\Desktop\PowerShell - Selenium\WebDriver.dll" 
    Add-Type -Path   $WebDriverPath -ErrorAction Stop
    Write-Host "DLL başarılı bir şekilde import edildi." -ForegroundColor Green
}
catch
{
    Write-Host "DLL Import edilemedi."
}

$ChromeDriverPath = "$env:USERPROFILE\Desktop\PowerShell - Selenium\"
$ChromeDriver = [OpenQA.Selenium.Chrome.ChromeDriver]::new($ChromeDriverPath)

$ChromeDriver.Navigate().GoToUrl("https://www.linkedin.com/")
Start-Sleep 2
$ChromeDriver.FindElementById("session_key").SendKeys("test@gmail.com")
Start-Sleep 1
$ChromeDriver.FindElementById("session_password").SendKeys("P@ssw0rd1")
Start-Sleep 1
$ChromeDriver.FindElementByXPath("/html/body/main/section[1]/div[2]/form/button").Submit()

$CurrentURL = $ChromeDriver.Url

if($CurrentURL -like "https://www.linkedin.com/feed/*"){
    Write-Host "Test Başarılı" -BackgroundColor DarkGray -ForegroundColor Green
}
else {
    Write-Host "Test başarısız."
}

Ercan ESE

Consultant and Trainer

Did you find apk for android? You can find new Free Android Games and apps.
There is 1 comment for this article

Emre için bir cevap yazınCevabı iptal et

Find NULLED WordPress Themes and Plugins at NulledHub.net