Làm cách nào tôi có thể sử dụng WebDriverWait để đợi cho đến khi thuộc tính thay đổi?WebDriverWait cho thuộc tính phần tử để thay đổi
Trong AUT của tôi, tôi phải chờ một nút được bật trước khi tiếp tục, thật không may do cách nhà phát triển mã hóa trang tôi không thể sử dụng phương thức isEnabled() của WebElement. Các nhà phát triển đang sử dụng một số CSS để chỉ làm cho nút trông giống như nó bị vô hiệu hóa để người dùng không thể nhấp vào nó và phương pháp isEnabled luôn luôn trả về true cho tôi. Vì vậy, những gì tôi phải làm là lấy thuộc tính "aria-disabled" và kiểm tra xem văn bản là "true" hay "false". Những gì tôi đã làm cho đến nay là một vòng lặp for với Thread.sleep, một cái gì đó như thế này:
for(int i=0; i<6; ++i){
WebElement button = driver.findElement(By.xpath("xpath"));
String enabled = button.getText()
if(enabled.equals("true")){ break; }
Thread.sleep(10000);
}
(bỏ qua các mã trên nếu không chính xác, chỉ cần giả mã của những gì tôi đang làm)
Tôi chắc chắn có một cách để đạt được một cái gì đó tương tự bằng cách sử dụng WebDriverWait đó là phương pháp ưa thích tôi chỉ không thể tìm ra cách. Đây là những gì tôi đang cố gắng để đạt được mặc dù những điều sau đây sẽ không làm việc:
WebDriverWait wait = new WebDriverWait(driver, 60);
wait.until(ExpectedConditions.visibilityOf(refresh.getText() == "true"));
Rõ ràng nó không hoạt động vì hàm được mong đợi một WebElement không Chuỗi nhưng đó là những gì tôi đang cố gắng để đánh giá. Bất kỳ ý tưởng?