Nightwatch - WaitForElementVisible 和 WaitForElementPresent 的含义

Nightwatch - Meaning of WaitForElementVisible and WaitForElementPresent

将 Nightwatch 用于 e2e 并且我发现这两个命令有点令人困惑 考虑到它们附带的名称和解释。

.waitForElementVisible: 在执行任何其他命令或断言之前等待元素在页面中可见的给定时间(以毫秒为单位)。

可见是什么意思?

.waitForElementPresent: 在执行任何其他命令或断言之前等待元素出现在页面中的给定时间(以毫秒为单位)。

现在是什么意思?

这两个命令之间有没有relation/implication?

很多问题,但也许对它们如何工作的解释将解决所有这些小问题...

有时我只是收到错误,我想这可能是我对这两个命令的理解不正确。

定义有什么问题?您已经回答了您的问题。

An element position in the footer, you need to scroll to see it, is it considered visible?

  • 不,你不需要滚动来检查它是否可见,或者 not.May 你确实需要一些命令但不需要这些 visible/present 命令。

Does it mean visible in the DOM even if it is display:hidden, position:relative; left:20000px;, ...? Not actually visible for a user but dom is existing basically.

  • 是的,它存在(意味着存在)在 DOM 中,但由于某种原因它还不可见 (连接错误,属性值,...)。

If an element return truth for .waitForElementVisible does it imply that .waitForElementPresent will return true?

  • 是的,如果元素可见 => 它存在。

有关用法,您可以在此处查看我的示例答案,它可能会有所帮助。

基本上一个元素可能存在(如在 DOM 中加载)但不可见(例如,在视图之外,因此您可能需要滚动才能看到它,或者它可能被隐藏)。

如果你想执行一个动作,比如点击一个元素,那么你想使用 'visible'。