Кипарис подцепил не тот элемент? - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь найти и щелкнуть этот элемент с помощью Cypress:

<input class="form-control btn btn-primary" type="button" value="Log out">

Я пробовал несколько вариантов, но наиболее близким является следующее:

 cy.get("input[type='button']").filter('.btn-primary').should('have.value','Log out').click()

Поэтому, когда я запускаю этот, Я получаю следующий ответ:

expected [ <input.form-control.btn.btn-primary>, 1 more... ] to have value Log out, but the value was Edit.

Конечно, там есть кнопка с названием «Редактировать», но она не та, которую я хочу.Я указал, что я хочу, в предложении should('have.value','Log out').

Итак, почему он настаивает на попытке использовать неправильный элемент и не работает?

Обновление: я наконец-то получил эту работу.

Вот решение, которое я выбрал в итоге:

cy.get("input[type='button']").filter('.btn-primary').eq(1)
    .should('have.value','Log out').then(($btn) => {
          $btn.click()
        })

Ответы [ 3 ]

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

Это решение сработало для меня:

cy.get("input[type='button']").filter('.btn-primary').eq(1)
.should('have.value','Log out').then(($btn) => {
      $btn.click()
    })
0 голосов
/ 15 октября 2018

Как насчет того, чтобы установить уникальный идентификатор testID для этой кнопки и сделать его настолько простым, насколько это возможно.

Что-то вроде:

data-test-id= "log-out-button" //put that in your button code

, а затем в Cypress:

cy.get('[data-test-id="log-out-button"]')
  .click()

, хотя вы можете установить функцию для более эффективного получения этих testID:

Command.Cypress.add('getTestID', (testID) => {
    cy.get(`[data-test-id="${testId}"]`)
})

и теперь все, что вы делаете для получения этой кнопки (или каждого элемента с testID, это: cy.getTestID('log-out-button')

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

Можете ли вы попробовать

cy.get('input').find("[value='Log out']").click()

или

   cy.get("[value='Log out']").click()

Очевидно, что вам нужно, чтобы ваши разработчики добавили идентификаторы, но я знаю вашу ситуацию.

Вы также можете попробоватьесли есть только один btn-primary

cy.get('.btn-primary').click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...