【发布时间】:2019-02-21 18:48:22
【问题描述】:
我正在尝试将 ExpectedConditions 函数作为参数传递给函数。
这样我可以互换不同的条件,我不必为每个条件都创建函数以便于使用。
问题是,量角器抛出错误:
失败:无法读取未定义的属性“和”
它指向 ExpectedConditions 实现。
可以重现问题并表明我的意图的代码:
import { browser, by, element, ElementFinder, ExpectedConditions, until } from 'protractor';
describe('wait on google page', () => {
const searchBtn = element.all(by.name('btnK')).last()
beforeEach(() => {
browser.get('https://www.google.com');
});
it('should work with until callback', () => {
callbackWait(until.elementIsVisible, searchBtn)
});
it('should work with ExpectedConditions', () => {
browser.wait(ExpectedConditions.visibilityOf(searchBtn), 1_000)
});
it('should work with EC callback', () => {
callbackWait(ExpectedConditions.visibilityOf, searchBtn)
});
});
function callbackWait(condition, element: ElementFinder) {
browser.wait(condition(element.getWebElement()), 1_000)
}
使用until.elementIsVisible,代码按预期工作,如果我在browser.wait() 中使用ExpectedCondition,则代码相同,如果我在使用until.elementIsVisible 时使用ExpectedCondition,则会出现错误。
对解决方法或提示我做错了什么有任何建议吗?
npm package.json 依赖项:
"devDependencies": {
"@types/jasmine": "^3.3.0",
"@types/jasminewd2": "^2.0.6",
"jasmine": "^3.3.0",
"protractor": "^5.4.2",
"ts-node": "^7.0.1",
"typescript": "^3.1.6"
}
【问题讨论】:
-
请出示
until.elementIsVisible的功能码。 -
until.elementIsVisible代码片段来自量角器环绕的 webdriver-js 模块:until.elementIsVisible source code
标签: javascript typescript protractor