Chào các bạn đã đến với topic tiếp theo của mình. Như các bạn đã biết, trên 1 trang web, có rất nhiều loại control khác nhau, ví dụ như textbox, combobox, button … Trong bài hôm nay mình sẽ giới thiệu với các bạn về cách handle Textbox hay Textarea và hướng dẫn các bạn làm 1 test case trong Automation test với Selenium Webdriver.
Chắc các bạn đã quá quen với 2 loại control này. Thật ra nhiệm vụ của 2 control này là giống nhau, đều được dùng để input data. Nó chỉ khác nhau về thẻ HTLM. Thông thường control Textbox sẽ có thẻ HTML là input, còn Textarea có thẻ HTML là textarea. Cái khác tiếp theo là TextArea mình input được nhiều dòng, có thể xuống hàng (ví dụ như field description, hay comment).
Còn Textbox thì chúng ta gặp rất nhiều như field input username, password ở màn hình login.
Nội dung
1. Các hàm sử dụng cho Textbox/Text Area
1.1. Hàm sendKeys()
- Hàm này dùng để truyền dữ liệu cần nhập vào Textbox và Text Area
- Cú pháp:
driver.findElement(By.id("username")).sendKeys("tomsmith");
- Nếu muốn nhập multi-line cho control Textarea thì mình cần phải thêm ký tự “\n”
driver.findElement(By.id("textarea")).sendKeys("Automation \n blog VN");
1.2. Hàm clear()
- Hàm này dùng để clear text đã nhập trước đó ở Textbox và Text Area
- Cú pháp:
driver.findElement(By.id("username")).clear();
1.3. Hàm getAttribute(“value”)
- Hàm này dùng để get value đang display ở Textbox và Text Area.
- Cú pháp:
String value = driver.findElement(By.id("username")).getAttribute("value");
- Ví dụ:
1.4. Hàm getText()
- Hàm này dùng để get label của control
- Cú pháp:
String text = driver.findElement(By.xpath("//li/a")).getText();
- Ví dụ:
1.5. Hàm click()
- Hàm này dùng để click vào control button hay hyperlink
- Cú pháp:
driver.findElement(By.xpath("//button[@type='submit']")).click();
2. Demo
Giả sử mình có flow như sau:
- Open browser: http://the-internet.herokuapp.com/login
- Input username “tomsmith“
- Input password: “SuperSecretPassword!“
- Click Login button
- Get welcome message and write log to console
- Flow trên được implement trên selenium webdriver như sau:
package org.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class Textbox {
WebDriver driver;
@BeforeClass
public void beforeClass() {
driver = new ChromeDriver();
driver.get("http://the-internet.herokuapp.com/login");
driver.manage().window().maximize();
}
@Test
public void TC_01_Register() {
// Input to username & password
driver.findElement(By.id("username")).clear();
driver.findElement(By.id("username")).sendKeys("tomsmith");
driver.findElement(By.id("password")).clear();
driver.findElement(By.id("password")).sendKeys("SuperSecretPassword!");
// Click login button
driver.findElement(By.xpath("//button[@type='submit']")).click();
// Get welcome message
String welcomeMessage = driver.findElement(By.xpath("//h4")).getText();
Assert.assertEquals(welcomeMessage, "Welcome to the Secure Area. When you are done click logout below.");
}
@AfterClass
public void afterClass() {
driver.quit();
}
}
- Sau khi run xong, bạn sẽ thấy kết quả in trong console như sau:
Lưu ý: Để chạy được đoạn code trên, các bạn hãy copy đoạn code bên dưới và paste vào file pom.xml nhé
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Demo</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.11.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.8.0</version>
</dependency>
</dependencies>
</project>
3. Kết
Như vậy chúng ta đã tìm hiểu qua 1 số hàm xử lý cho control textbox, textarea và button. Cảm ơn các bạn đã theo dõi bài viết của mình. Chúc các bạn thành công. Hẹn gặp lại các bạn ở những chủ đề tiếp theo.