Нажать кнопку с помощью Cypress, не вызывая команду щелчка? - PullRequest
0 голосов
/ 01 августа 2020

Я пытаюсь автоматизировать страницу в приложении с двумя кнопками на странице. Один включен, и его можно щелкнуть. Другой отключается при первой загрузке. Но как только первая кнопка нажата, открывается новая вкладка браузера, а затем активируется вторая кнопка. Затем пользователь может щелкнуть его и go в форме.

Очевидно, Cypress не может обрабатывать новые вкладки, но есть ли способ вызвать команду щелчка, не вызывая событие посредством щелчка?

Я пробовал cy.get(".button1").trigger("click"), но новая вкладка все еще открыта.

Думаю, одно из решений - разбить его на два теста. Но есть ли способ лучше?

Ответы [ 2 ]

1 голос
/ 01 августа 2020

Лично я бы протестировал это не щелчком по кнопке, а проверкой, можно ли щелкнуть по ней (то есть атрибут не отключен). Если вы используете прослушиватели событий и тестируете в Chrome, вы можете использовать getEventListeners(), чтобы проверить, существует ли прослушиватель событий, или вы можете проверить любые атрибуты onclick/ng-click, которые вы могли установить для него. .

Если вы действительно хотите нажать кнопку, чтобы протестировать событие, но на самом деле не открываете новую вкладку, просто узнайте, как открывается вкладка (например, window.open(..., '_blank')), и исправьте ее только для этого теста .

0 голосов
/ 02 августа 2020

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

например,

 cy.get('#btnSubmit').invoke("removeAttr","disabled")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...