Будучи относительно новым парнем в nightwatch.js и автоматизации тестирования с использованием javascript, я столкнулся со многими проблемами, которые я решил как-то, но теперь я столкнулся с одной проблемой, Я еще не в состоянии это исправить.Событие Click не запускается в Nightwatch.js на MacBook с помощью Chrome
Вещь следующая, nightwatch способен находить элемент видимым, но не может на него нажимать. И это происходит только на MacBook, также я должен упомянуть, что в среде Windows все работает так, как ожидалось.
вещей, которые я пытался до сих пор являются:
Первое решение:
//**expand hover menu**
.waitForElementVisible('@hoverMenu', 1000)
.click('@hoverMenu')
//**wait one second and click on logout button**
.api.pause(1000)
.assert.visible('@logoutBtn')
.click('@logoutBtn')
Второе решение:
//**expand hover menu**
.waitForElementVisible('@hoverMenu', 1000)
.click('@hoverMenu')
//**wait one second and click on logout button**
.click('@logoutBtn',function(){
this.waitForElementVisible('@logoutBtn',10000);
this.click('@logoutBtn');
})
А вот код ошибки я получаю
✔ Элемент < #app> div> div> в сторону> div.header__rightbarHeader ___ nXVZ2> div.radialMenu__radialMenu ___ 2Xy3S.header__mediaMenu ___ 3aHzZ> span> был виден после 45 миллисекунд.
✖ Проверка, если элемент < @logoutBtn> виден. Элемент не может быть расположен. - ожидаемый «истинный», но получил: «null»
Проблема в том, что assert всегда передается, и когда он должен запускать событие click, он всегда будет терпеть неудачу. Также странно, что в сообщении об ошибке в пройденном тесте я получаю полный путь, а на неудавшемся - только «@logoutBtn
», который является частью абстракции объекта страницы.
Я использую selenium-server-standalone-3.0.1.jar
и доступна последняя версия chromedriver
. И сайт, над которым я работаю, сделан в ReactJS
.
Заранее спасибо, ребята;)
Просто для уточнения; являются сообщения об ошибках из соответствующих решений? То есть '✔' для решения 1 и' ✖' из решения 2? Также вы можете опубликовать фрагмент HTML для элемента, над которым вы пытаетесь действовать? – Dillanm
Отправлено это сообщение, чтобы показать, что '@logoutBtn' и '#app> div> div> ....' - это тот же самый элемент, и этот элемент может быть распознан как видимый, но не может вызвать щелчок. И чтобы показать, когда это утверждение пройдет, он покажет полный xpath, и когда он потерпит неудачу, он отобразит его как «@logoutBtn» – timetraveler90
. Должен признать, что я не совсем знаком с nightwatch или реагирую, поэтому я не уверен, что «@logoutBtn 'делает в селекторе; в xpath это селектор атрибутов, поэтому вы пытаетесь выбрать объект с атрибутом 'logoutBtn'? Если вы не можете объяснить, я могу помочь вам решить эту проблему. – Dillanm