Download CV

Selenium Metotları

Aralık 17, 2021

Bir sayfadaki öğeleri bulmak için çeşitli stratejiler vardır. Durumunuza en uygun olanı kullanabilirsiniz. Selenium, bir sayfadaki öğeleri bulmak için aşağıdaki yöntemleri sağlar:

1. Find Element

findElement komutu, WebElement türünde bir nesne döndürür. ID, Name, ClassName, link text, XPath,vb. gibi çeşitli konum belirleme stratejilerini kullanabilir.

Ana metotlardan biridir, neredeyse tüm Selenium etkileşimlerinin bir parçasıdır.

WebElement elementName = driver.findElement(By.LocatorStrategy(“LocatorValue”));

Locator Belirleme Stratejisi aşağıdaki değerleri içerir.

  1. ID
  2. Name
  3. Class Name
  4. Tag Name
  5. Link Text
  6. XPath

driver.findElement(By.xpath(“//input[@id=’gh-ac’]”)).sendKeys(“Guitar”);

Locator Değeri, web öğesinin kolayca tanımlanabileceği benzersiz yöntemdir.

2. Find Elements

Find Element metotunun liste çeken halidir.

FindElements komutu, verilen bulucu stratejisi ve bulucu değeri kullanılarak bulunan hiçbir öğe yoksa boş bir liste döndürür. FindElements komutunun sözdizimi aşağıdadır.

List<WebElement> elementName = driver.findElements(By.LocatorStrategy(“LocatorValue”));

Locator sayesinde HTML sayfasında elementleri bulup List<WebElement> türüne çeviren fonksiyondur.

List<WebElement> listOfElements = driver.findElements(By.xpath(“//div”));

3. Click

Tıklama aksiyonlarını gerçekleştiren metottur.

FindElement ile beraber kullanılması gereken elementlere tıklama işlemini gerçekleştiren metottur.

Basit bir deyişle, tıklama komutu bir bağlantı, düğme, onay kutusu veya radyo düğmesi için bir tıklama işlemine öykünür. Selenium Webdriver’da bir öğe bulduktan sonra tıklamayı yürütün.SeleniumIDE’de, kayıt cihazı tanımlamayı yapacak ve komut basitçe tıklatılacak.

Örnek: Aşağıdaki komut çağırma, myButton adlı bir düğme öğesine tıklamayı simüle eder

driver.findElement(By.id(“myButton”)).click();

Bir WebElement’e ihtiyaç duyan ve tıklama işlemini gerçekleştiren metottur.

4. Send Keys

Veri girilebilen alanların doldurulmasını sağlayan metottur. Harf harf yazma veya kopyala-yapıştır gibi yöntemleri vardır.

Veri girişi olan alanlara değer yazmamızı sağlayan metottur.

sendkeys(), Selenium’da, QA’ların herhangi bir form testi yürütürken içeriği otomatik olarak düzenlenebilir bir alana yazmasına izin veren bir yöntemdir. Bu alanlar, element id, name, class name vb. gibi konum belirleyiciler kullanılarak tanımlanabilen web öğeleridir.

WebElement email = driver.findElement(By.id(“user_email_login”));

WebElement password = driver.findElement(By.id(“user_password”));

email.sendKeys(“abc@xyz.com”);

password.sendKeys(“abcdef12345”)

WebElement objesine ihtiyaç duyan ve bizden bir String değer isteyen metottur.

5. Submit

Veri girilebilen alanlar da onaylamayı sağlayan veya Enter tuşuna basılmış gibi davranan metottur.

Veri girişini onaylamamızı sağlayan metottur. Auto-Seart box gibi alanlarda

submit komutunun amacı, sayfadaki Giriş, Kayıt formları vb. gibi herhangi bir formu göndermektir.

driver.findElement(By.id(“username”)).submit();

WebElement objesine ihtiyaç duyan ve gönderilen alanın submit edilebilir bir alanması olması gereken metottur.

6. Clear

Veri girilebilen alanların temizlenmesini sağlayan metottur. Mevcut değerinin metin kutularını temizlemek için kullanılır

Veri girilmiş alanların temizlenmesini sağlar. Kullanım amacı yazdığımız bir şeyi temizlemek veya yazmadan önce alanın bizim sadece bizim gireceğimiz verinin bulunmasını sağlamak.

driver.findElement(By.id(“username”)).clear();

WebElement objesine bağlı olarak çalışan, input veya textarea gibi alanları temizleyen metottur.

7. Get Text

Text özelliğini içeren tüm HTML elementlerin text değerlerinin çekilmesini sağlayan metottur.

Herhangi bir HTML objesinin text değeri bulunduğu durumda bunu bize String olarak döndüren metottur.

driver.findElement(By.id(“usernameLabel”)).getText();

Geri dönen değer String türündendir.

8. Get Attribute

HTML elementlerin herhangi bir attirbute(özelliğinin) çekilmesini sağlayan metottur.

Bir objenin özelliğinin değerini kontrol etmek için kullanılan metottur.

driver.findElement(By.id(“seleniumAttr”)).getAttribute(“name”);

Belirtilen attribute(özellik)’in değerini String olarak getiren metottur.

Örnek olarak:

driver.findElement(By.id(“img”)).getAttribute(“SRC”);

9. Get Page Source

GetPageSource yöntemini kullanarak Selenium web sürücüsü kullanarak sayfa kaynağını tarayıcıda olduğu gibi alabiliriz. Sayfa kaynağının kodunu almamızı sağlar.

WebDriver’a bağlı olarak çalışan metottur.

driver.getPageSource();

Geriye String değer döndüren derlenen HTML sayfasının içeriğini getiren metottur.

Ayrıca, body etiketini offfindElement yöntemi ile tanımlayarak sayfa kaynağını elde edebilir ve ardından üzerine getText yöntemini uygulayabiliriz. By.tagName parametresi, findElement yöntemine parametre olarak iletilir.

WebElement element= driver.findElement(By.tagName(“body”));
String p = element.getText();

10. Select Options

Selenium WebDriver’daki ‘Select’ sınıfı, bir açılır menüde seçeneği seçmek ve seçimi kaldırmak için kullanılır. Select türündeki nesneler, aşağı açılan webElement öğesinin oluşturucusuna parametre olarak geçirilmesiyle başlatılabilir.

WebElement testDropDown = driver.findElement(By.id(“testingDropdown”));

Select dropdown = new Select(testDropDown);

HTML sayfalarında tarih, gün gibi combobox dediğimiz türde alanların kolay bir şekilde seçilmesini sağlayan metottur.

WebDriver, açılır menüden bir seçenek belirlemenin üç yolunu sunar.

a.selectByIndex

0 ile başlayan indeksine göre bir seçenek seçmek için kullanılır.

dropdown.selectByIndex(5);

b.selectByValue

‘Value’ niteliğine göre bir seçenek seçmek için kullanılır.

dropdown.selectByValue(“Database”);

c.selectByVisibleText

Seçenek üzerindeki metne göre bir seçenek seçmek için kullanılır.

dropdown.selectByVisibleText(“Database Testing”);

Verilen elementin “select” objesi olması gerekmektedir. Verdiğimiz değer göre seçimi otomatik bir şekilde gerçekleştirir.

11. Actions

Actions sınıfı, temel olarak fare ve klavye eylemleri için kullanışlıdır. Bu tür eylemleri gerçekleştirmek için Selenium çeşitli yöntemler sunar.

Selenium’da Mouse Eylemleri:

  1. click(): Geçerli fare konumunda tıklamalar.
  2. doubleClick(): Öğeye çift tıklama gerçekleştirir
  3. clickAndHold(): Fareyi bırakmadan uzun süre tıklama yapar
  4. dragAndDrop(): Öğeyi bir noktadan sürükleyip diğerine bırakır
  5. dragAndDropBy(source, xOffset, yOffset): Kaynak elemanın konumunda tıklayın ve basılı tutun, belirli bir ofset ile hareket eder
  6. moveToElement(): Fare işaretçisini öğenin merkezine kaydırır
  7. moveByOffset(x-offset, y-offset):Fareyi geçerli konumundan (0,0) verilen ofset kadar hareket ettirir
  8. contextClick(): Fare üzerinde sağ tıklama gerçekleştirir
  9. release(): Geçerli fare konumunda basılı sol fare düğmesini serbest bırakır

Selenium’da Klavye Eylemleri:

  1. sendKeys(): Öğeye bir dizi anahtar gönderir
  2. keyUp(): Anahtar bırakma gerçekleştirir
  3. keyDown(): Serbest bırakmadan tuşa basar

Actions sınıfı işlemleri gönderebilmek için WebDriver’a ihtiyaç duymaktadır.

Actions actions = new Actions(driver);

WebElement moveElement = driver.findElement(By.id(“move”));

actions.moveToElement(moveElement);

actions.perform();

Actions sınıfı kullanırken işlemi perform etmeyi unutmamak önemlidir.

Actions sınıfı için detaylı bilgiye Selenium Mouse Kullanma İşlemleri yazımdan ulaşabilirsiniz.

12. Switch Metodları

Pencere, sekme ve iframe geçişlerini sağlayan metottur.

Geçiş Yöntemleri, çerçevelere, uyarılara ve pencerelere geçiş yapmak için tasarlanmıştır. Çerçeve, uyarı veya pencere içinde bir eylem gerçekleştirmeden önce Test Komut Dosyamız değişmelidir. Anahtarlamayı atlarsak, program bir istisna döndürür. Anahtarlama yöntemlerine switchTo() aracılığıyla erişilir. switchTo() bir hedef konumlandırıcı döndürür ve gelecekteki bir komutu göndermek için kullanılır. İşte switchTo aracılığıyla yöntemlerin bir listesi:

  • activeElement()
  • alert()
  • defaultContent()
  • frame
  • frame(int index)
  • frame(String nameOrId)
  • frame(WebElement frameElement)
  • parentFrame()
  • window(String nameOrHandle)

a. Switch To Frame

Bir çerçeve seçmemize izin veren 4 yöntem ve odağı ana bağlama değiştiren 1 yöntem vardır:

  1. frame(WebElement element) —WebElement ile bir çerçeve seçer.
  2. frame(String nameOrId) — Name veya ID sine göre bir çerçeve seçer.

3. frame(int index) — (zero-based) dizinine göre bir çerçeve seçer

4. defaultContent() —Bu metot sayfa yüklendiğinde default olarak gelen content’e geçişi sağlamaktadır.

5. parentFrame() —Bu metot geçiş yapılmış bir iframe content’in parent(üst-kapsayıcı) frame’ine geçişi sağlamaktadır.

b. Switch To Alert

Alert, bilgi sağlayan veya kullanıcıdan bir eylem bekleyen bir açılır kutudur. Bir uyarıda gerçekleştirilecek 3 tür uyarı ve 4 eylem vardır. 3 uyarı türü şunlardır:

  1. Information Alert —1 butonlu bir mesaj içerir.
  2. Confirmation Alert — 2 butonlu bir mesaj içerir.
  3. Prompt Alert —2 butonlu bir mesaj ve bir metin giriş alanı içerir.

Alert()’te gerçekleştirilecek eylemler şunlardır:

  1. accept() —uyarıyı kabul eder.
  2. dismiss() —uyarıyı iptal eder.
  3. getText() — uyarıdan metin alır.
  4. sendKeys() — uyarıya metin yazar.

c.Switch To Window

Selenium, tüm pencerelere benzersiz bir alfasayısal kimlik atar. Kimliğe pencere tutamacı denir ve her pencere arasında kontrolü değiştirmek için kullanılır. Pencere tanıtıcısını almak için 2 yöntem vardır:

  1. getWindowHandle() — geçerli pencere tanıtıcısını alın.
  2. getWindowHandles() — bir dizi pencere tutamacı alın.

Örnek kodlar:

driver.switchTo().parentFrame();

driver.switchTo().frame(“nameOrId”);

driver.switchTo().defaultContent();

driver.switchTo().window(“nameorHandle”);

driver.getWindowHandles(); driver.getWindowHandle();

driver.switchTo().alert();

driver.switchTo().activeElement();

13. Kontrol Metotları

FindElement metotu üzerinden gelen boolean değer dönen kontrol metotudur.

Açıklamak gerekirse bir element’in gerçekten görünür olduğunun kontrol edebiliriz.

a. isDisplayed

driver.findElement(By.id(“enabled”)).isDisplayed();

Geriye boolean değer döndüren, elementin görünür olduğunda “true” şekilde bizde dönüş sağlayan metottur.

Bu metot tarayıcıda aktif olarak görünen alanda olup olmadığının kontrolünü sağlar.

isDisplayed() yöntemi, bir öğenin görüntülenip görüntülenmeyeceğini belirleyerek bir boole değeri döndürür. Bir boole değeri doğru veya yanlıştır (true = Yes / false = No).

Aşağıdaki kod parçacığı, isDisplayed() yöntemini uygular ve değeri boolean linkSignUp’ye atar. Bağlantının görüntülenip görüntülenmediğine bakacağız.

WebElement linkSignUp = driver.findElement(By.id(“tp-signup-link”));
boolean linkSignUpDisplayed = linkSignUp.isDisplayed();
linkSignUp.click();

b. isEnabled

driver.findElement(By.id(“enabled”)).isEnabled();

isEnabled() yöntemi, bir öğe etkinse true, bir öğe devre dışıysa false döndürür.

boolean isButtonEnabled = driver.findElement(By.id(“tp-sign-up”)).isEnabled();
System.out.println(“Kaydol Düğmesi Etkinleştirildi mi?” + isButtonEnabled);

c. isSelected

driver.findElement(By.id(“selected”)).isSelected();

Geriye boolean değer döndüren, elementin seçili olduğunda “true” şekilde bizde dönüş sağlayan metottur.

Posted in Selenium
Write a comment