Я использую платформу тестирования Cypress.io и браузер Chrome / последнюю версию.
У меня 3 раскрывающихся списка. Первый включен по умолчанию, поэтому я могу выбрать его без проблем;второй и третий отключены. При выборе вручную и выборе первого раскрывающегося списка включается второй раскрывающийся список, затем при выборе второго раскрывающегося списка включается третий. Я могу обратиться к каждому в отдельности, используя cy.get
, используя их имя или их индекс 0,1, или 2;поэтому я просто буду использовать индекс каждого в этом вопросе.
Теперь, когда я программно выберу первый раскрывающийся список с помощью Cypress:
cy.get('select').eq(0).select('Nursing', {force: true})
... 2-й выпадающий список отключен. Я добавил cy.wait(2000)
[2 секунды] после выбора 1-го выпадающего списка, достаточно времени для выбора, а затем я пытаюсь выбрать 2-й выпадающий список следующим образом: cy.get('select').eq(1).select('US - Alaska', {force: true})
, и я получаю эту ошибку:
CypressError: Timed out retrying: cy.select() failed because this element is currently disabled: <select id="course-finder-location-select" name="course_finder_location" data-select2-id="course-finder-location-select" disabled="" tabindex="-1" class="select2-hidden-accessible" aria-hidden="true"></select>
, что является вторым выбором.
Как видите, я использовал его индекс через eq(1)
, и он правильно определяет его как 2-й выбор.
Я пытаюсь выяснить, как включить 2-й выпадающий список с помощью Cypress-тестированиякоманды. Я даже включил jQuery CDN, который не вызывает ошибку;но когда я пытаюсь добавить команду jQuery, которая работает в консоли [она включает 2-й выбор]:
jQuery("#course-finder-location-select").prop( "disabled", false )
,
, мой тест Cypress просто завершается без ошибок. Кажется, ему не нравятся команды jQuery или даже JavaScript - я тоже попробовал это:
document.getElementById("course-finder-location-select").disabled = false
[хотя я могу заставить это сделать window.alert("!")
].
Есть идеи, как получить второй выбор, чтобы включить с помощью Cypress? Я не могу изменить файл HTML вообще.
Заранее спасибо за уделенное время! Если у вас есть какие-либо предложения, как я могу перефразировать это, дайте мне знать. У меня еще нет песочницы для Cypress.