gpt4 book ai didi

java - isDisplayed() 方法对于某些元素始终返回 true

转载 作者:行者123 更新时间:2023-12-01 14:05:59 25 4
gpt4 key购买 nike

我正在使用 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>

最佳答案

尝试使用 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;
}

关于java - isDisplayed() 方法对于某些元素始终返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18899087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com