Caner BASAT

Caner BASAT

  • Dökümanlarım
  • Faydalı Yazılar

›Test Otomasyon

Test Otomasyon

  • C# ile Selenium Webdriver Başlangıç
  • Selenium Nedir & Selenium IDE
  • Selenium JavascriptExecutor Kullanımı
  • Selenium Kullanarak Resim Kaydetme
  • Selenium Ekran Görüntüsü alma
  • Headless Chrome Kullanımı
  • Selenium-Grid Nedir?

JAVA

  • İf-Else Koşul Yapısı

Selenium JavascriptExecutor Kullanımı

Bazen Selenium ile web elementlerinin kontrollerini sağlarken selenium komutları yetersiz kalabiliyor istediğimiz performansı sağlamayabiliyor ve sorunlarla karşılaşabiliyoruz. Bu durumlarda alternatif olarak üstesinden gelmek için JavaScriptExecutor sınıfını dahil ediyoruz. JavaScript HTML ve DOM’a direk erişip yönetebilen bir script dili olduğundan bize çok fazla kolaylık sağlar. Testimizin performansını arttırır ve normal javascript dilinde kodlamamıza imkan tanır.

Nasıl sorunlarla karşılaşıyoruz?

Örnek verecek olursak, en basitinden click() tıklama komutu tıklamadı ama bize bir hata mesajı da vermedi. Burada kaçış yolu olarak JavaScriptExecutor’a başvururuz ve düzgün çalışır.

Bize dönüş değeri olarak döndürdüğü tipler:

  • Boolean
  • Long
  • String
  • List
  • WebElement
  • Null

Projemizde kullanacağımız zaman öncelikli olarak kütüphaneyi dahil edelim.

import org.openqa.selenium.JavascriptExecutor

Birkaç örnek göstererek gözünüzde biraz daha canlanmasını sağlayalım. JavaScriptExecutor yazımı yani bir diğer alışık olduğumuz tabirle syntaxi:

JavascriptExecutor js = (JavascriptExecutor) driver;

Js.executeScript(Script,Element);

Click işlemi için:

JavascriptExecutor js = (JavascriptExecutor) driver;

String el = "document.getElementById('butonunIDsi').click()";

js.executeScript(el);

////////////////////////////////////////////////////////////////////  
js.executeScript("document.getElementById('Elementin Idsi').click();");

js.executeScript("document.getElementByName('Elementin İsmi').click();");

js.executeScript("document.getElementByClass('Elementin Sınıf İsmi ').click();");  
////////////////////////////////////////////////////////////////////

js.executeScript("arguments[0].click();", loginButton); // Direk tıklatmak istedigimiz butonu tek satırda yazabiliriz.

Scroll Down:


js.executeScript("window.scrollBy(0,600)");

Başka bir sayfaya yönlendirebiliriz:

js.executeScript("window.location = 'http://www.google.com/'");

Alert(uyarı) mesajı verebliliriz:

js.executeScript("alert('Bu bir uyarıdır');");

Karakter dizisi gönderebiliriz:

js.executeScript("document.getElementById('Elementin Id’si').value='Metin';");

Sayfayı yenileyebiliriz:

js.executeScript("history.go(0)");

Elementin içindeki değeri alabiliriz:

String el1 =  js.executeScript("return document.documentElement.innerText;").toString();

Sayfa Başlığını alabiliriz:

String el2 =  js.executeScript("return document.title;").toString();

Sayfanın Url adresini alabiliriz:

String el3 =  js.executeScript("return document.URL;").toString();

← Selenium Nedir & Selenium IDESelenium Kullanarak Resim Kaydetme →
Copyright © 2021 Caner BAŞAT