我有这个测试代码:
element(by.cssContainingText('a[ng-click="select()"]', 'Visual')).click()
browser.sleep(1000)
expect(element.all(by.tagName('angular-chart')).count()).toEqual(1);
但它一直挂起直到超时,然后显示:
Error: Timeout - Async callback was not invoked within timeout specified by
jasmine.DEFAULT_TIMEOUT_INTERVAL
.
我想我需要等待内容以某种方式加载然后运行测试?
如果我将 expect 结构替换为下面的结构,它会通过:
expect(true).toEqual(true)
最佳答案
试试这个:
element(by.cssContainingText('a[ng-click="select()"]', 'Visual')).click().then( function(){
expect(element.all(by.tagName('angular-chart')).count()).toEqual(1);
});
Protractor 中的大多数调用都会返回一个 promise 。 http://www.protractortest.org/#/api?view=webdriver.WebElement.prototype.click
关于javascript - 单击和内容加载完成后如何运行 Protractor 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34334977/