当输入字段为空时,我正在使用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>
答案 0 :(得分: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;
}