Cypress, If else / switch case не работает - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь добавить else if / switch case в моем тесте, но в противном случае if - он идет только в случае case, если 'if' fail, он больше не входит, если это также происходит в case switch.module.exports.selectEnviroment = function (env) {

switch (env) {
case 'alpha':
  cy.get('[role="presentation"]')
    .find('[href="#/company-detail/5bb3765e64f66ca0027e15245"]')
    .click();
  break;
case 'beta':
  cy.get('[role="presentation"]')
    .find('[ng-href="#/company-detail/5bb62c019ee36000273a6e2b"]')
    .eq(0)
    .click();
  break;

}

 it('Booking should be done using invoice', () => {
    cy.visit(`${blah_URL}#/xyz/`);
    let env = blah.split('.')[1];
    selectEnviroment(env);

В зависимости от среды следует выбрать регистр, но не

    if (
    cy.get('[role="presentation"]').find('[ng-href="#/company-detail/5bb62c019ee36000273a6e2b"]') ) {
    cy.get('[role="presentation"]')
      .find('[ng-href="#/company-detail/5bb62c019ee36000273a6e2b"]')
      .eq(0)
      .click();
  } //alpha
  else if (cy.get('[role="presentation"]').find('[ng-href="#/company-detail/5bae05a39af4a90027fcdf43"]')) {
    cy.get('[role="presentation"]')
      .find('[ng-href="#/company-detail/5bae05a39af4a90027fcdf43"]')
      .eq(0)
      .click();
  } //QA
  else if (cy.get('[role="presentation"]').find('[ng-href="#/company-detail/5b855022323d37000f48bcdc"]')) {
    cy.get('[role="presentation"]')
      .find('[ng-href="#/company-detail/5b855022323d37000f48bcdc"]')
      .eq(0)
      .click();
  } //Gamma
  else if (cy.get('[role="presentation"]').find('[ng-href="#/company-detail/5bb62ccf5cb043002737d929"]')
  ) {
    cy.get('[role="presentation"]')
      .find('[ng-href="#/company-detail/5bb62ccf5cb043002737d929"]')
      .eq(0)
      .click();
  }

it('flight booking should be done using new credit card', () => {
cy.visit(`${COCKPIT_URL}#/company-list/`);
selectEnviroment();

сообщение об ошибке

1 Ответ

0 голосов
/ 05 октября 2018

Вы используете команды Cypress и ожидаете, что они сразу дадут результаты.Это не так, как работает Cypress.Вызов функции Cypress - это просто способ попросить Cypress добавить команду в свой список команд для последующего запуска.

.then() был создан с учетом ситуации такого типа.Он позволяет добавить некоторый код для запуска сразу после предыдущей команды в цепочке:

cy.get('.myDiv').then(elem => {
    // elem is a jQuery object
    console.log(elem.text());
    if (elem.text() == 'Some text') {
        // do something
    else {
        // ...
    }
}

Я настоятельно рекомендую прочитать введение в Cypress в документах .Это хорошо написано и легко читается.Cypress не похож на другие среды тестирования, и для написания хорошего кода Cypress необходимо базовое понимание того, как работает Cypress.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...