私は Selenium Webdriver + Thucydides を使用しています。チェックボックス(任意の状態:isEnabled()、isDisplayed()、isSelected())を使用しようとすると、エラーが発生します。ID、名前、xpath など、さまざまなロケーターを試しました。チェックボックスはページソースで利用できます。ページ上の他のすべての要素は正しく機能します。DisplayedElementLocatorFactory を使用しています。
私のロケーター:
@FindBy(id = "remember")
// @FindBy(xpath = ".//*[@type='checkbox']")
// @FindBy(name = "_remember_me")
protected WebElement rememberMeCheckbox;
チェックボックスの HTML ソース:
<label for="remember" class="remember"><div class="checker" id="uniform-remember"><span><input type="checkbox" value="1" name="_remember_me" id="remember" /></span></div>Remember me</label>
私の機能:
public void isLoginFormLoadedCorrectly()
{
String pageSource = driver.getPageSource();
System.out.println(pageSource);
String errorMessage = "";
if (!loginInput.isDisplayed())
errorMessage += "Username field is not displayed or not found\r\n";
if (!passwordInput.isDisplayed())
errorMessage += "Password field is not displayed or not found\r\n";
if (!submitButton.isDisplayed())
errorMessage += "Submit button is not displayed or not found\r\n";
if (!passwordRecoveryLink.isDisplayed())
errorMessage += "Password recovery link is not displayed or not found\r\n";
if (!rememberMeCheckbox.isDisplayed())
errorMessage += "Remember me check-box is not displayed or not found\r\n";
// if (rememberMeCheckbox.isSelected())
// errorMessage += "Remember me check-box is selected\r\n";
assertThat(errorMessage, errorMessage.equals(""), is(true));
}
エラー: net.thucydides.core.webdriver.WebdriverAssertionError: org.openqa.selenium.NoSuchElementException: 30 秒後にタイムアウトしました。要素が見つかりません 原因: org.openqa.selenium.NoSuchElementException: 30 秒後にタイムアウトしました。要素が見つかりません原因: org.openqa.selenium.NoSuchElementException: 要素が使用できません