Chào các bạn đã đến với chủ đề tiếp theo của mình. Hôm nay, mình sẽ tiếp tục hướng dẫn các bạn cách xử lý với control Radio button. Cách sử lý control này cũng tương tự như control Checkbox. Các bạn có thể thấy control này ở nhiều màn hình khác nhau, ví dụ như màn hình Đăng ký, chỗ chọn giới tính. Hoặc trong các bài test, mà câu trả lời là single choice.
Với control này, thì thường sẽ có những action chính như sau:
- Select vào item. Ví dụ: Male/Female or Single/Married
- Verify default status của radio button đó: selected/unselected
- Check control is enabled/disabled
Nội dung
1.1. Hàm click()
- Hàm này dùng để giả lập hành động của user click vào button/checkbox/radio button/link
- Ví dụ:
driver.findElement(By.xpath("//label[text() = '3.6 Petrol, 191kW']/preceding-sibling::input")).click();
1.2. Hàm isSelected()
- Hàm này dùng để kiểm tra control Checkbox/Radio xem có đang được select hay không.
- Giá trị trả về kiểu boolean. Nếu kết quả trả về true nghĩa là checkbox/radio đang được check/select, ngược lại sẽ trả giá trị là false.
- Ví dụ:
Boolean isSelected = driver.findElement(By.xpath("//label[text() = '3.6 Petrol, 191kW']/preceding-sibling::input")).isSelected();
1.3. Hàm isEnabled()
- Hàm này dùng để kiểm tra control đang enabled hay disabled?
- Giá trị trả về kiểu boolean. Nếu kết quả trả về true nghĩa là control đang enabled, ngược lại sẽ trả giá trị là false.
- Ví dụ:
boolean isEnabled = driver.findElement(By.xpath("//label[text() = '3.6 Petrol, 191kW']/preceding-sibling::input")).isEnabled();
2. Ví dụ
Ví dụ mình có test case như sau:
- Open url: https://demos.telerik.com/kendo-ui/radiobutton/index
- Verify radio button: 3.6 Petrol, 191kW is disabled
- Select radio button: 2.0 Petrol, 147kW
- Verify radio button: 2.0 Petrol, 147kW is selected
Các bạn hãy xem đoạn code mẫu bên dưới nhé:
package org.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
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 RadioButton {
WebDriver driver;
@BeforeClass
public void beforeClass() {
driver = new ChromeDriver();
driver.manage().window().maximize();
}
@Test
public void TC_01_Radio_Button() {
// Navigate to demo site
driver.get("https://demos.telerik.com/kendo-ui/radiobutton/index");
// Verify radio button: 3.6 Petrol, 191kW is disabled
WebElement radio = driver.findElement(By.xpath("//label[text() = '3.6 Petrol, 191kW']/preceding-sibling::input"));
Assert.assertFalse(isElementEnabled(radio));
// Find element of radio button: 2.0 Petrol, 147kW
radio = driver.findElement(By.xpath("//label[text() = '2.0 Petrol, 147kW']/preceding-sibling::input"));
// Select radio button: 2.0 Petrol, 147kW
radio.click();
// Verify radio button : 2.0 Petrol, 147kW is selected
Assert.assertTrue(isElementSelected(radio));
}
public boolean isElementEnabled(WebElement element) {
if (element.isEnabled()) {
System.out.println("Element is enabled");
return true;
} else {
System.out.println("Element is disabled");
return false;
}
}
public boolean isElementSelected(WebElement element) {
if(element.isSelected()) {
System.out.println("Element is selected");
return true;
}
else {
System.out.println("Element is de-selected");
return false;
}
}
@AfterClass
public void afterClass() {
driver.quit();
}
}
Kết quả:
3. Kết
Như vậy chúng ta đã tìm hiểu qua 1 số hàm xử lý cho control Radio 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.