Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Lấy giá trị trả về từ JavaScript code trong Selenium

Mô tả

Sử dụng executeScript với từ khóa return để lấy giá trị từ JavaScript execution (ví dụ: value của input).

Cú pháp

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("return document.getElementsByName('txtSearchText')[0].value");

Ví dụ hoàn chỉnh (Java)

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.By;
import java.util.concurrent.TimeUnit;

public class JavascriptValue {
  public static void main(String[] args) {
    System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
    WebDriver driver = new ChromeDriver();
    driver.get("https://www.tutorialspoint.com/tutor_connect/index.php");
    driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS);

    // Nhập text
    WebElement input = driver.findElement(By.id("txtSearchText"));
    input.sendKeys("Selenium");

    // Đọc giá trị bằng JS
    JavascriptExecutor js = (JavascriptExecutor) driver;
    String value = (String) js.executeScript(
      "return document.getElementsByName('txtSearchText')[0].value"
    );
    System.out.println("Value is: " + value);
    driver.quit();
  }
}

Kết quả

In ra: "Value is: Selenium"

Các trường hợp hay dùng

  • Đọc value của input bị disabled/readonly
  • Lấy computed style, attribute phức tạp
  • Gọi hàm JS custom trả về dữ liệu
  • Debug: return document.documentElement.outerHTML