0

当输入字段为空时,我正在使用 Selenium 测试错误消息的外观。错误消息设计为输入元素的标签。当消息不可见时,它具有属性“display: none;” .

当我通过文本找到该消息并调用isDisplayed()方法时,即使消息不可见,它也始终返回 true。我在 Java 上编写测试,所以我没有isVisible()消息。

我试过方法getAttribute("style"),但它返回空字符串。方法getCssValue("display")返回"block"即使在页面上它的值为"none"

调用click()方法后,我期待ElementNotVisibleException,但什么也没发生!

有任何想法吗?解决方法?

这里的 HTML 示例:

<form id="from id" style="display: block;">

<input id="input" name="input">

<label for="input" generated="true" style="display: none;">Error text here.</label>

</from>

4

1 回答 1

1

尝试使用 WebDriverWait() 来查找 WebElement,您可以等待元素的可见性:

/**
 * 
 * Get a Web Element using WebDriverWait()
 * 
 */

public WebElement getInputBox() throws TimeoutException {

    WebElement webElement = null;
    WebDriverWait driverWait = new WebDriverWait(5);

    // find an element using a By selector

    driverWait.until(
            ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#input")));

    webElement = driver.findElement(By.cssSelector("#input"));

    return webElement;
}
于 2013-09-21T00:07:00.183 回答