2017-01-18 6 views
0

Будучи относительно новым парнем в 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.

Заранее спасибо, ребята;)

+0

Просто для уточнения; являются сообщения об ошибках из соответствующих решений? То есть '✔' для решения 1 и' ✖' из решения 2? Также вы можете опубликовать фрагмент HTML для элемента, над которым вы пытаетесь действовать? – Dillanm

+0

Отправлено это сообщение, чтобы показать, что '@logoutBtn' и '#app> div> div> ....' - это тот же самый элемент, и этот элемент может быть распознан как видимый, но не может вызвать щелчок. И чтобы показать, когда это утверждение пройдет, он покажет полный xpath, и когда он потерпит неудачу, он отобразит его как «@logoutBtn» – timetraveler90

+0

. Должен признать, что я не совсем знаком с nightwatch или реагирую, поэтому я не уверен, что «@logoutBtn 'делает в селекторе; в xpath это селектор атрибутов, поэтому вы пытаетесь выбрать объект с атрибутом 'logoutBtn'? Если вы не можете объяснить, я могу помочь вам решить эту проблему. – Dillanm

ответ

0

Вот скриншот кода, который должен быть щелкнул https://i.stack.imgur.com/gH9bf.jpg

И код:

<span data-react-toolbox="font-icon" class="material-icons  
radialMenu__btnIcon___3fNWR iconButton__iconButton___clsLX" 
data-event="click focus" style="background: rgba(0, 0, 0, 0);"> 
<!-- react-text: 211 -->input<!-- /react-text --> 
</span>