等待和睡眠不适用于量角器

Wait and Sleep does not work on protractor

我在使用自动测试测试屏幕时遇到问题,我正在填写所有输入字段,然后按下提交按钮,但等待/睡眠似乎不起作用,这导致按钮被按下在填写输入之前。

为什么我的睡眠/等待不起作用?

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;影响睡眠/等待的工作方式,或者是否有任何其他配置可以影响它。 这是我的protactor配置:

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_PROMISE_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..