2016-05-05 3 views
0

У меня есть кнопка с идентификатором = «Выход» в моем приложении, когда я использую этот идентификатор, чтобы нажать на транспортире я получаю ошибкукнопка не кликабельна в e2e

it('4 should click Log out',() => {  
     element.all(by.id('logOut')).click(); 
     browser.driver.sleep(5000);   
    }); 

мой HTML является

<ion-buttons end> 
     <button (click)='signOut()'> 
      <ion-icon id="logOut"name="log-out"></ion-icon> 
     </button> 
    </ion-buttons> 

мой эээ в терминале

should click Log out 
     - Failed: unknown error: Element is not clickable at point (1028, 28). Other element would receive the click: <button class="bar-button bar-button-default bar-button-icon-only">...</button> 
    (Session info: chrome=50.0.2661.94) 
    (Driver info: chromedriver=2.21.371459 (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4),platform=Mac OS X 10.11.2 x86_64) 
F 
+0

Есть ли причина, по которой вы вызываете 'element.all' на идентификаторе? Идентификаторы уникальны, поэтому вам не нужно использовать '.all' – Gunderson

ответ

0

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

Добавление сна (указано в Protractor API docs), прежде чем поиск заставил меня двигаться после вращения моих колес. Наконец, получил браузер. Подождите, после работы через поток.

it('4 should click Log out',() => { 
    browser.sleep(1000); 
    element(by.id('logOut')).click();   
}); 

-or- 

var EC = protractor.ExpectedConditions; 
var logoutButton = element(by.id('logOut')); 
browser.wait(EC.elementToBeClickable(logoutButton), 5000); 
logoutButton.click(); 

Удачи!

0

транспортир говорит, что он нашел элемент с id="logOut", но если он пытается с лизать этот элемент, вместо этого будет нажато другое место на этом месте экрана (button class="bar-button").

Посмотрите на свою страницу визуально и убедитесь, что нет ничего, что перекрывает вашу кнопку выхода из системы. Или, может быть, вам нужно поместить идентификатор на элемент <button>, вместо значка, чтобы транспортир мог правильно щелкнуть.

Обратите внимание, что это поведение может отличаться в chrome (что, по-видимому, более строгое из-за невозможности щелчка на перекрывающихся элементах) vs firefox (который иногда может щелкнуть элементы, которые находятся ниже других элементов).

0

Чтобы добавить к большому объяснению @ martin770, есть элемент, который «наводит» желаемый элемент, который вы хотите щелкнуть. Я подозреваю, что это из-за разбитого/измененного размера вашего приложения. Попробуйте максимизируя окно браузера, поместите это в onPrepare() в вашей конфигурации:

browser.driver.manage().window().maximize(); 
Смежные вопросы