Nightwatch - WaitForElementVisible 和 WaitForElementPresent 的含义
Nightwatch - Meaning of WaitForElementVisible and WaitForElementPresent
我 将 Nightwatch 用于 e2e 并且我发现这两个命令有点令人困惑 考虑到它们附带的名称和解释。
.waitForElementVisible:
在执行任何其他命令或断言之前等待元素在页面中可见的给定时间(以毫秒为单位)。
可见是什么意思?
- 页脚中的元素位置,需要滚动才能看到,是否可视?
- 这是否意味着在 DOM 中可见,即使它是
display:hidden
、position:relative; left:20000px;
、...?用户实际上不可见,但 dom 基本上是存在的。
- 什么是某些内容之上的模态视图?可见吗?
.waitForElementPresent:
在执行任何其他命令或断言之前等待元素出现在页面中的给定时间(以毫秒为单位)。
现在是什么意思?
- 存在于 DOM 中而不考虑它是否可见?
这两个命令之间有没有relation/implication?
- 如果 .waitForElementVisible 的元素 return 为真是否意味着 .waitForElementPresent 将 return 为真?
很多问题,但也许对它们如何工作的解释将解决所有这些小问题...
有时我只是收到错误,我想这可能是我对这两个命令的理解不正确。
定义有什么问题?您已经回答了您的问题。
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'。
我 将 Nightwatch 用于 e2e 并且我发现这两个命令有点令人困惑 考虑到它们附带的名称和解释。
.waitForElementVisible: 在执行任何其他命令或断言之前等待元素在页面中可见的给定时间(以毫秒为单位)。
可见是什么意思?
- 页脚中的元素位置,需要滚动才能看到,是否可视?
- 这是否意味着在 DOM 中可见,即使它是
display:hidden
、position:relative; left:20000px;
、...?用户实际上不可见,但 dom 基本上是存在的。 - 什么是某些内容之上的模态视图?可见吗?
.waitForElementPresent: 在执行任何其他命令或断言之前等待元素出现在页面中的给定时间(以毫秒为单位)。
现在是什么意思?
- 存在于 DOM 中而不考虑它是否可见?
这两个命令之间有没有relation/implication?
- 如果 .waitForElementVisible 的元素 return 为真是否意味着 .waitForElementPresent 将 return 为真?
很多问题,但也许对它们如何工作的解释将解决所有这些小问题...
有时我只是收到错误,我想这可能是我对这两个命令的理解不正确。
定义有什么问题?您已经回答了您的问题。
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'。