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 check phần tử đang bị disable hay enable trong Selenium Webdriver.
1. Yêu cầu
- Phần tử enable: có thể xem, chỉnh sửa giá trị, thực hiện các action như nhập, chọn dữ liệu, kéo, thả,… || phần tử disable: chỉ có thể xem, không được phép chỉnh sửa, không thực hiện được các action như enable
- Kiểm tra phần tử như textbox, checkbox, radiobutton, dropdown, textarea,… đang được enable hay disable. Áp dụng khi check về UI cho 1 page hoặc khách hàng yêu cầu trong 1 page, field nào được phép enable, field nào bị disable
Ví dụ như hình dưới khi check vào checkbox “Contingent Rent” thì 4 textbox “Period End/ Contingent Rent Description/ Days to Report/ Breakover” sẽ được enable => vậy thì trước khi check vào checkbox “Contingent Rent” chúng ta phải xác định 4 textbox “Period End/ Contingent Rent Description/ Days to Report/ Breakover” có phải là đang bị disable hay không, nếu không thì đó là Bug -> Dev code bị miss requirement)
2. Giải pháp
- import thư viện: org.openqa.selenium.WebElement;
- Khởi tạo: WebElement locator;
- Kiểm tra hiển thị: locator.isEnabled();
- Xem chi tiết hàm isElementEnabled() trong phần Source demo phía dưới nhé
3. Site demo
- Link: https://automationfc.github.io/basic-form/index.html
- Như hình dưới, mình sẽ check các element này đang bị disable:
- Password textbox
- Age radio button
- Biography text area
- Job Role 02 dropdown list
- Interest checkbox
- Slider 02 slider
4. Source demo
package org.example.Topic36;
import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.time.Duration;
public class CheckElementEnableDisable {
WebDriver driver;
@BeforeClass
public void beforeClass() {
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
driver.get("https://automationfc.github.io/basic-form/index.html");
driver.manage().window().maximize();
}
@Test
public void Test01_TextboxIsDisabled() throws Exception {
String element = "//input[@id='password']";
if (isElementEnabled(driver, element)) {
System.out.println("Textbox is enabled");
} else {
System.out.println("Textbox is disabled");
}
}
@Test
public void Test02_TextAreaIsDisabled() throws Exception {
String element = "//textarea[@id='bio']";
if (isElementEnabled(driver, element)) {
System.out.println("Text Area is enabled");
} else {
System.out.println("Text Area is disabled");
}
}
@Test
public void Test03_CheckboxIsDisabled() throws Exception {
String element = "//*[@id='check-disbaled']";
if (isElementEnabled(driver, element)) {
System.out.println("Checkbox is enabled");
} else {
System.out.println("Checkbox is disabled");
}
}
@Test
public void Test04_ButtonIsDisabled() throws Exception {
String element = "//*[@id='button-disabled']";
if (isElementEnabled(driver, element)) {
System.out.println("Button is enabled");
} else {
System.out.println("Button is disabled");
}
}
@Test
public void Test05_SliderIsDisabled() throws Exception {
String element = "//*[@id='slider-2']";
if (isElementEnabled(driver, element)) {
System.out.println("Slider is enabled");
} else {
System.out.println("Slider is disabled");
}
}
@Test
public void Test06_RadioButtonIsDisabled() throws Exception {
String element = "//input[@id='radio-disabled']";
if (isElementEnabled(driver, element)) {
System.out.println("Radio button is enabled");
} else {
System.out.println("Radio button is disabled");
}
}
@Test
public void Test07_DropdownListIsDisabled() throws Exception {
String element = "//*[@id='job2']";
if (isElementEnabled(driver, element)) {
System.out.println("Dropdown List is enabled");
} else {
System.out.println("Dropdown List is disabled \n");
}
}
public boolean isElementEnabled(WebDriver driver, String yourLocator) {
try {
WebElement locator;
locator = driver.findElement(By.xpath(yourLocator));
return locator.isEnabled();
} catch (NoSuchElementException e) {
return false;
}
}
@AfterClass
public void afterClass() {
driver.quit();
}
}
Nguồn:
https://vntesters.com/java-webdriver-09-kiem-tra-phan-tu-bi-disable-enable/