Как мне установить флажок, когда я получаю сообщение об ошибке. Я делаю это в кипарисе

#javascript #testing #automation #path #cypress

Вопрос:

 cy.get('[data-ng-show="destact['dest'].length > 0"] > .checkbox-block > :nth-child(1) > .ng-binding').click()
 

выше приведен путь к моему флажку. Поскольку есть две одинарные кавычки, я также попытался объединить их, но безуспешно

 cy.get('[data-ng-show="destact[' 'dest' '].length > 0"] > .checkbox-block > :nth-child(1) > .ng-binding').click()
 

Комментарии:

1. Можете ли вы добавить html элемента в свой вопрос ?

Ответ №1:

Обратные галочки также являются допустимыми разделителями для селектора,

 cy.get(`[data-ng-show="destact['dest'].length > 0"] > .checkbox-block > :nth-child(1) > .ng-binding`)
 

Ответ №2:

Предполагая, что селектор [data-ng-show="destact['dest'].length > 0"] > .checkbox-block > :nth-child(1) > .ng-binding является правильным селектором, вы можете использовать обратную косую черту, чтобы избежать одинарных кавычек:

 cy.get('[data-ng-show="destact['dest'].length > 0"] > .checkbox-block > :nth-child(1) > .ng-binding').click()
 

Ответ №3:

По-видимому, при выборе этого атрибута со сложным выражением возникают две проблемы

 <div data-ng-show="destact['dest'].length > 0" ></div>
 
  • конфликт кавычек
  • квадратные скобки преждевременно завершают селектор.

Это будет работать, если есть только один элемент с выражением, начинающимся destact

 cy.get("div[data-ng-show^=destact]")
  .should('have.attr', 'data-ng-show', "destact['dest'].length > 0")
  .find('.checkbox-block > :nth-child(1) > .ng-binding')
 

Если выбрано более одного элемента cy.get("div[data-ng-show^=destact]") , вы можете добавить фильтр для точного выражения

 cy.get("div[data-ng-show^=destact]")
  .filter((i, el) => {
    return Cypress.$(el).attr('data-ng-show') === "destact['dest'].length > 0"
  })
  .find('.checkbox-block > :nth-child(1) > .ng-binding')