当我检查元素是否存在时,代码工作正常,如果我检查不存在的元素会导致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()
有人可以帮我吗?
答案 0 :(得分:0)
这段代码对我有用。
var fee = $$('[ng-if="paymentDetails.responseObject[0].fee_amount > 0"]').get(0);
expect(fee.isPresent()).toBe(false);