expect(locator).to_be_visible()
和locator.wait_for()
有区别吗?我应该选择其中之一吗?
我查了一下
__doc__
:
wait_for
:当定位器指定的元素满足state
选项时返回。 (state
默认为 'visible'
)。to_be_visible
:确保定位器指向附加且可见的 DOM 节点。还是不太清楚。定位器是否可以可见但不附加?如果是这样,如果我确定已附加定位的元素,它们会相等吗?
定位器是否可以可见但未附加?
不,这是不可能的。要使元素可见,需要将其附加到 DOM 树(在文档中)。换句话说,visible是attached的超集。
wait_for
不是一个明确的断言。这是一种定位器方法,可让您阻塞,直到满足文档中描述的特定可见性/附件谓词为止。
to_be_visible
是一个明确的断言,表明元素已附加且可见。您可以将其视为 wait_for
提供的功能的面向期望的子集。
如果您正在编写测试,请使用
to_be_visible
,否则使用 wait_for
。
to_be_attached
和类似的方法感兴趣。