如何手动使用量角器 ExpectedCondition?
How to manually use a protractor ExpectedCondition?
我是量角器的新手,我想创建一个这样的期望:
expect(elementIsVisible).toBe(true);
我看到量角器有 EC (expected conditions),即 EC.visibilityOf
,这似乎是我要找的。但是,我不完全确定 visibilityOf
returns.
我发现 the docs 很晦涩:
RETURNS
+-----------+-------------------------------------------------------------------------------------------+
| Type | Description |
+-----------+-------------------------------------------------------------------------------------------+
| !function | An expected condition that returns a promise representing whether the element is visible. |
+-----------+-------------------------------------------------------------------------------------------+
它 return 是什么? Promise
或 预期条件?
好吧,考虑到 .then
的链式触发 then is not a function
,似乎 return 是一个 预期条件 。但那是什么?
在所有 Protractor 文档示例中,此 return 值用于 browser.wait
函数。
我不想那样使用它,我想在我的 expect
条件下有一个 true
/false
值。
如果我尝试从 Selenium 的示例中查找更多信息,量角器(javascript 实现)将重定向到 Java documentation...
visibilityOf
和所有其他 ExpectedConditions return 函数。你可以调用这个函数,你会得到 Promise<boolean>
。基本上所有 ExpectedConditions 都是谓词 - 函数,当被调用时 return promise 解析为布尔值(不应该抛出异常)。所以基本上你可以尝试使用这样的东西:
let shouldBeVisible = protractor.ExpectedConditions.visibilityOf
expect(
shouldBeVisible($('div.button'))() // Notice () - this where we are manually calling predicate function to get boolean result
).toBeTruthy('Element div.button should be visible');
但幸运的是 - 如果您使用的是 JasmineJS - 您可以尝试我的库来断言元素的可见性:
https://github.com/Xotabu4/jasmine-protractor-matchers
因此,您不仅会检查元素可见性,而且匹配器会自动等待一段时间以使元素可见。检查这个:
expect($('div.button')).toAppear()
README.MD中有更多示例
我是量角器的新手,我想创建一个这样的期望:
expect(elementIsVisible).toBe(true);
我看到量角器有 EC (expected conditions),即 EC.visibilityOf
,这似乎是我要找的。但是,我不完全确定 visibilityOf
returns.
我发现 the docs 很晦涩:
RETURNS
+-----------+-------------------------------------------------------------------------------------------+
| Type | Description |
+-----------+-------------------------------------------------------------------------------------------+
| !function | An expected condition that returns a promise representing whether the element is visible. |
+-----------+-------------------------------------------------------------------------------------------+
它 return 是什么? Promise
或 预期条件?
好吧,考虑到 .then
的链式触发 then is not a function
,似乎 return 是一个 预期条件 。但那是什么?
在所有 Protractor 文档示例中,此 return 值用于 browser.wait
函数。
我不想那样使用它,我想在我的 expect
条件下有一个 true
/false
值。
如果我尝试从 Selenium 的示例中查找更多信息,量角器(javascript 实现)将重定向到 Java documentation...
visibilityOf
和所有其他 ExpectedConditions return 函数。你可以调用这个函数,你会得到 Promise<boolean>
。基本上所有 ExpectedConditions 都是谓词 - 函数,当被调用时 return promise 解析为布尔值(不应该抛出异常)。所以基本上你可以尝试使用这样的东西:
let shouldBeVisible = protractor.ExpectedConditions.visibilityOf
expect(
shouldBeVisible($('div.button'))() // Notice () - this where we are manually calling predicate function to get boolean result
).toBeTruthy('Element div.button should be visible');
但幸运的是 - 如果您使用的是 JasmineJS - 您可以尝试我的库来断言元素的可见性: https://github.com/Xotabu4/jasmine-protractor-matchers
因此,您不仅会检查元素可见性,而且匹配器会自动等待一段时间以使元素可见。检查这个:
expect($('div.button')).toAppear()
README.MD中有更多示例