使用量角器检查元素时出现Jasmine超时错误

时间:2017-07-27 16:26:20

标签: protractor

当我检查元素是否存在时,代码工作正常,如果我检查不存在的元素会导致Jasmine超时。

text = "A XYZ B XYZ C"
indices = ((2, 5), (8, 11))
chars = list(text)

for start, end in reversed(indices):
    chars[start:end] = str(start + end)

text = ''.join(chars) # A 7 B 19 C

错误讯息 -

var fee = $$('[ng-if="paymentDetails.responseObject[0].fee_amount > 0"]');
expect(fee.isPresent()).toBe(false);

堆栈:     错误:超时 - 在jasmine.DEFAULT_TIMEOUT_INTERVAL指定的超时内未调用异步回调。         堆:         在ontimeout(timers.js:386:14)         在tryOnTimeout(timers.js:250:5)         在Timer.listOnTimeout(timers.js:214:5)

在Config.js文件中,我设置了60secs的茉莉花超时

Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.

我尝试插入 exports.config = { seleniumAddress: 'http://localhost:4444/wd/hub', multiCapabilities: [ { browserName: 'chrome', shardTestFiles: true, maxInstances: 1, chromeOptions: { args: [ '--disable-infobars', '--disable-extensions', 'verbose', 'log-path=./reports/chromedriver.log' ], prefs: { 'profile.password_manager_enabled': false, 'credentials_enable_service': false, 'password_manager_enabled': false } } }, { browserName: 'internet explorer', platform: 'ANY', version: '11' } ], framework: 'jasmine2', suites: { em2_login: ['e2e/tests/login/login.spec.js'] } useAllAngular2AppRoots: 'true', allScriptsTimeout: 60000, getPageTimeout: 60000, jasmineNodeOpts: { showColors: true, displayStacktrace: true, displaySpecDuration: true, defaultTimeoutInterval: 60000, disableChecks: true }, params: { siteUrl: '' }, onPrepare: function () { jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000; }, }, browser.sleep(5000)仍然有超时。

以下是具有当前状态的元素的HTML代码 -

browser.waitforAngular()

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

这段代码对我有用。

var fee = $$('[ng-if="paymentDetails.responseObject[0].fee_amount > 0"]').get(0);
expect(fee.isPresent()).toBe(false);