我使用Selenium Webdriver + Thucydides。當我嘗試使用複選框(任何狀態:isEnabled(),isDisplayed(),isSelected())時,將發生錯誤。我嘗試了不同的定位器:通過id,name,xpath。該複選框在頁面源中可用。頁面上的所有其他元素都可以正常工作。我使用DisplayedElementLocatorFactory。引起人:org.openqa.selenium.NoSuchElementException:元素不可用
我定位器:
@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:元素是不可用
我已超時,但沒有任何變化。沒有框架。複選框在div - > form - > fieldset中。 –
您使用的是哪種版本的修昔底德?錯誤本身看起來不正確。 –
我正在使用0.9.125。 –