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(而不更改语法)