Hàm sendKeys() được dùng để nhấn phím (Ctrl, Shift, F0, F1,…) hay nhập text vào một element (như text bar, text area/ text box…) mà không làm thay đổi nội dung có sẵn trước đó
public class Textbar {
public static void main(String[] args) {
// set chrome driver exe path
System.setProperty("webdriver.chrome.driver", "C:/~/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("");
// set value to textbar
driver.findElement(By.xpath("//input[@id='textbar']")).sendKeys("selenium webdriver");
}
}
Trước khi nhập text thì các bạn nên clear textbox để tránh ghi đè lên text tồn tại trước đó.
driver.get("");
// set value to textbar
driver.findElement(By.xpath("//input[@id='textbar']")).sendKeys("selenium webdriver");
// clear() method clears the content of a editable item
driver.findElement(By.xpath("//input[@id='textbar']")).clear();
//send text to the same textbar and notice the change
driver.findElement(By.xpath("//input[@id='textbar']")).sendKeys("selenium webdriver");
II. Cách tương tác với button bằng sendKey
Có phải khi mới học Selenium, chúng ta thường ngầm định là để nhập text thì chúng ta sẽ dùng hàm sendKeys(); còn nếu muốn click vào một button thì chúng ta sẽ dùng hàm click() đúng không các bạn?
Ở phần này, mình sẽ đóng góp thêm một cách nữa để các bạn phát huy tối đa công dụng của hàm sendKeys() nhé. Khi các bạn login vào một trang nào đó (Facebook chẳng hạn), sau khi các bạn đã điền email và password xong thì chúng ta sẽ tiện tay “enter” luôn phải không nào? Như vậy khi viết script, khi gặp một element button thay vì dùng hàm click() thì các bạn có thể thử sendKeys() phím Enter xem sao nhé.
System.setProperty("webdriver.chrome.driver", "C:/~/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("");
// send enter key to button
driver.findElement(By.xpath("//input[@id='btn-sendkeys']")).sendKeys(Keys.ENTER);