当前位置: 首页 > 知识库问答 >
问题:

WebElement:检查是否存在WebElement?

穆洋
2023-03-14

我有一些WebElement
不是像byXPathCSSSelector之类的任何类型的元素定位器,而是WebElement本身。
我如何检查WebElement是否存在/呈现等?
我可以在try-catch块中应用类似元素.isdisplay()元素.click()之类的这也应该是一些通用的东西,而不是所有的元素都是可见的或可点击的。

再一次,我问的是webelement实例本身,所以所有这些关于元素定位器的问题都是无关的。

共有1个答案

微生承业
2023-03-14

因为您不知道某个元素是否过时,所以您必须在try-catch中执行一些操作来测试它是否过时。这是在expectedconditions中为stalenessof完成的。

/**
 * Wait until an element is no longer attached to the DOM.
 *
 * @param element The element to wait for.
 * @return false if the element is still attached to the DOM, true otherwise.
 */
public static ExpectedCondition<Boolean> stalenessOf(final WebElement element) {
    return new ExpectedCondition<Boolean>() {
        @Override
        public Boolean apply(WebDriver ignored) {
            try {
                // Calling any method forces a staleness check
                element.isEnabled();
                return false;
            } catch (StaleElementReferenceException expected) {
                return true;
            }
        }

        @Override
        public String toString() {
            return String.format("element (%s) to become stale", element);
        }
    };
}

更好的方法是以这样一种方式编写代码,这样你就不会有过时的元素。我们不能建议您,因为您没有共享您的代码。

 类似资料:
  • 问题内容: 我期待的是类似WebElement.isfocus()的东西,…确实很简单,但是我发现的唯一方法是使用 伪类。 这真的是不常见的任务,例如找不到大量信息吗? 我知道这个SO主题,但是距那时已经快两年了。最新版本中没有新内容吗? 您知道一些解决方法吗? 问题答案: 还有另一个主题涉及这个问题:使用SeleniumWebdriver测试元素是否为焦点 基本上,代码将是

  • 问题内容: 我有一个嵌入了数据库的桌面应用程序。当我执行程序时,我需要检查特定的表是否存在,如果不存在则创建它。 给我的数据库一个名为conn的Connection对象,我该如何检查呢? 问题答案: 您可以使用可用的元数据: 有关更多详细信息,请参见此处。还要注意JavaDoc中的注意事项。

  • 问题内容: 我正在尝试检查$ _POST是否存在,如果存在,则在另一个字符串中打印它,如果不存在,则根本不打印。 像这样的东西: 任何帮助将是巨大的! 问题答案:

  • 问题内容: 我正在尝试检查是否存在用户默认值,如下所示: 但是,无论对象还不存在,它将始终返回true是什么?这是检查存在的正确方法吗? 问题答案: 阿斯通有一个很好的答案。请参阅下面的Swift 3版本。

  • 问题内容: 如果我具有流程的PID,则os.FindProcess是否足以测试该流程的存在?我的意思是,如果返回,我是否可以认为它已终止(或被杀死)? 编辑: 我刚刚写了一个包装函数(旧式bash流程测试)。这可以正常工作,但是如果有其他解决方案(使用go库完成),我仍然很高兴。 问题答案: 这是查看进程是否处于活动状态的传统的Unix方式-向其发送0信号(就像您对bash示例所做的一样)。 来自

  • 问题内容: 检查cookie是否存在的好方法是什么? 条件: Cookie存在,如果 如果不存在Cookie, 问题答案: 您可以使用所需cookie的名称调用函数getCookie,然后检查其是否为null。