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