17 Mart 2020 Salı

Selenium JavascriptExecutor Arayüzü

Giriş
Şu satırı dahil ederiz.
import org.openqa.selenium.JavascriptExecutor;
Her Driver aynı zamanda bu arayüzü gerçekleştirir.

constructor
Şöyle yaparız.
JavascriptExecutor js = (JavascriptExecutor) driver;
executeScript metodu
Örnek - Yeni Pencere Açmak
Şöyle yaparız.
js.executeScript("window.open('https://www.google.com','_blank');");
Örnek - Yeni Pencere Açmak
Şöyle yaparız.
 ((JavascriptExecutor) driver).executeScript("window.open('http://gmail.com/','_blank');")
Örnek - Düğmeye Tıklamak
Şöyle yaparız.
WebElement button = ...;
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].click();", button);
Örnek
Şöyle yaparız
void waitForPageLoaded() {
  ExpectedCondition<Boolean> expectation = new
    ExpectedCondition<Boolean>() {
      public Boolean apply(WebDriver driver) {
        return ((JavascriptExecutor) driver).executeScript("return document.readyState")
          .toString().equals("complete");
      }
    };
  ...
}
Örnek - Highlit Etmek
Şöyle yaparız. Arka plan rengi sarı yapılıyor.
import java.io.File;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class maingoogle {

  public static WebDriver driver;

  public static void highlight(WebDriver driver,WebElement element) {
    JavascriptExecutor js = (JavascriptExecutor) driver;
    js.executeScript("arguments[0].setAttribute('style', 'background: yellow;
      border: 2px solid #101094;');", element);
  }
  public static void main(String[] args) {

    System.setProperty("webdriver.chrome.driver",
      new File("yourdriverpath").getAbsolutePath());
    driver = new ChromeDriver();
    driver.get("https://www.google.com/?safe=active&ssui=on");
    WebElement searchbar=driver.findElement(By.xpath("//input[@name=\"q\"]"));
    highlight(driver,searchbar);
    searchbar.sendKeys("QA is fun");

  }

}

Hiç yorum yok:

Yorum Gönder