WebDriverWait を使用して、属性が変更されるまで待機するにはどうすればよいですか?
私の AUT では、続行する前にボタンが有効になるまで待つ必要があります。残念ながら、開発者がページをコーディングした方法が原因で、WebElement の isEnabled() メソッドを使用できません。開発者は CSS を使用してボタンを無効にしているように見せているため、ユーザーはボタンをクリックできず、メソッド isEnabled は常に true を返します。したがって、属性「aria-disabled」を取得し、テキストが「true」か「false」かを確認する必要があります。私がこれまで行ってきたことは、次のような Thread.sleep を使用した for ループです。
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);
}
(間違っている場合は上記のコードを無視してください。私がやっていることの単なる疑似コードです)
WebDriverWait を使用して同様のことを達成する方法があると確信していますが、これは方法がわかりません。これは私が達成しようとしているものですが、以下はうまくいきません:
WebDriverWait wait = new WebDriverWait(driver, 60);
wait.until(ExpectedConditions.visibilityOf(refresh.getText() == "true"));
関数は String ではなく WebElement を期待しているため、明らかに機能しませんが、それは私が評価しようとしているものです。何か案は?