我有一个测试代码:
element(by.cssContainingText('a[ng-click="select()"]', 'Visual')).click()
browser.sleep(1000)
expect(element.all(by.tagName('angular-chart')).count()).toEqual(1);但是它挂起直到超时到达,然后显示:
错误:超时-异步回调没有在
jasmine.DEFAULT_TIMEOUT_INTERVAL指定的超时内调用。
我想我需要等待内容加载,然后运行测试?
如果我用下面的一个替换expect结构,它会传递:
expect(true).toEqual(true)发布于 2015-12-17 14:06:28
试试这个:
element(by.cssContainingText('a[ng-click="select()"]', 'Visual')).click().then( function(){
expect(element.all(by.tagName('angular-chart')).count()).toEqual(1);
});在量角器中的大多数呼叫都会带来一个承诺。http://www.protractortest.org/#/api?view=webdriver.WebElement.prototype.click
发布于 2015-12-17 15:15:03
让我们尝试添加一个显式等待以等待angular-chart元素现身
var EC = protractor.ExpectedConditions;
element(by.cssContainingText('a[ng-click="select()"]', 'Visual')).click()
var chart = element(by.tagName('angular-chart'));
browser.wait(EC.presenceOf(chart), 10000);您还可以考虑增加茉莉花超时间隔。
https://stackoverflow.com/questions/34334977
复制相似问题