Protractor 等待和睡眠在量角器上不起作用
我在用自动测试测试屏幕时遇到问题,我填写所有输入字段,然后按下提交按钮,但等待/睡眠似乎不起作用。这导致在填写输入之前按下按钮 为什么我的睡眠/等待不起作用Protractor 等待和睡眠在量角器上不起作用,protractor,automated-tests,integration-testing,Protractor,Automated Tests,Integration Testing,我在用自动测试测试屏幕时遇到问题,我填写所有输入字段,然后按下提交按钮,但等待/睡眠似乎不起作用。这导致在填写输入之前按下按钮 为什么我的睡眠/等待不起作用 describe('Wizard - Organizacional data - Test Plan - 150454', function () { const functionsPage = new functionObjectPage(); it('148454 - Incluir informações do administr
describe('Wizard - Organizacional data - Test Plan - 150454', function () {
const functionsPage = new functionObjectPage();
it('148454 - Incluir informações do administrador e Escritório.', function() {
browser.wait(until.presenceOf(element(by.id('openWizard'))), 30000, '');
browser.executeScript("document.querySelector('#openWizard').click()");
browser.executeScript("document.querySelector('#usuarioPrincipal').value = 'User master'");
browser.executeScript("document.querySelector('#emailUsuarioPrincipal').value = 'master@master.com'");
browser.executeScript("document.querySelector('#officeName').value = 'Office Name'");
browser.executeScript("document.querySelector('#cnpj').value = '57375882000197'");
browser.sleep(5500);
browser.executeScript("document.querySelector('#btnNextStep').click()");
});
});
我不知道browser.ignoreSynchronization=true;影响睡眠/等待的工作方式,或者任何其他配置是否会影响睡眠/等待。
这是我的主角配置:
var SpecReporter = require('jasmine-spec-reporter').SpecReporter;
var env = process.env.env || 'local';
var config = require('./e2e/src/helper/config')[env];
var Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter');
exports.config = {
directConnect: true,
capabilities: {
browserName: 'chrome'
},
SELENIUM_PROMISE_MANAGER: false,
framework: 'jasmine',
specs: [
'./e2e/src/*_spec.js',
],
suites: {
pages: './e2e/src/*_spec_suite.js',
},
baseUrl: config.baseUrl,
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 2000000,
print: function () {}
},
onPrepare: function () {
require('jasmine2-custom-message');
var jasmineReporters = require('jasmine-reporters');
var junitReporter = new jasmineReporters.JUnitXmlReporter({
consolidateAll: true,
savePath: 'testresults',
filePrefix: 'reportXMLoutput'
});
jasmine.getEnv().addReporter(
new Jasmine2HtmlReporter({
savePath: 'testresults/screenshots'
}));
jasmine.getEnv().addReporter(junitReporter);
jasmine.getEnv().addReporter(new SpecReporter({
suite: {
displayNumber: true
},
spec: {
displayStacktrace: true,
displayErrorMessages: true,
displaySuccessful: true,
displayFailed: true,
displayPending: true,
displayDuration: true
}
}));
browser.ignoreSynchronization = true;
browser.driver.manage().timeouts().implicitlyWait(15000);
browser.driver.manage().window().maximize();
}
};
您的配置中有
SELENIUM\u PROMISE\u MANAGER:false
,这意味着您需要使用async/await
同步执行步骤
describe('Wizard - Organizacional data - Test Plan - 150454', () => {
const functionsPage = new functionObjectPage();
it('148454 - Incluir informações do administrador e Escritório.', async () => {
await browser.wait(until.presenceOf(element(by.id('openWizard'))), 30000, '');
await browser.executeScript("document.querySelector('#openWizard').click()");
etc..
etc..
如果我使用SELENIUM\u PROMISE\u MANAGER:对,等待和睡眠都有效?这两种情况下都有效。如果您不想使用async/await,并且想使用PROMISE\u管理器(已经过时),那么只需将其设置为true(而不更改语法)