2016-06-24 3 views
3

Я пишу пробку для существующего приложения. У меня есть кнопка под названием «Отклонить» в модальном окне, и я пытаюсь нажать ее с помощью:Нажмите на кнопку в Модальном окне - Транспортир

element(by.buttonText('Decline')).click(); 

Но я получаю ошибку ниже:

UnknownError: unknown error: Element is not clickable at point (,). Other element would receive the click: 

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

enter image description here

Как нажать на кнопку Отказать модального окна?

Обнаружено, что это код js, который отображает эту кнопку отмены.

..... 
var content = { 
      title: 'Decline', 
      htmlBody: '<p>...</p> ', 
      okButton: 'Decline', 
      onOk: function() { 
..... 

ответ

2

Мой коллега рекомендуется это, и она работала:

При нажатии на первую кнопку Decline открывает модальное,

сна в течение некоторого времени,

Теперь нажмите вторую кнопку отмены.

element(by.buttonText('Decline')).click(); 
browser.sleep(2000); 
element(by.cssContainingText('.btn', 'Decline')).click(); 

Спасибо за вашу помощь :)

+0

Спасибо! Работает отлично! – Sharath

+0

Отлично :) Приятно слышать это. –

-1

попробуйте следующий код,

var DeclineBtn = element(by.buttonText('Decline')); 
browser.executeScript("arguments[0].click()",DeclineBtn.getWebElement()) 
+0

Что это делает? Не могли бы вы дать короткий отрывок? Поскольку есть две кнопки с текстом кнопки Decline, как мы идентифицируем тот, что есть в модальном? –

0

Написать код который должен отображаться под модальным окном, внутри тега формы. И сериализуйте эту форму с существующей формой.

1

As there are two buttons with button text Decline, How do we identity the one in modal?

Один из способов приблизиться к этому, чтобы улучшить работу вашего локатора в рамках модального контента. Но, поскольку вы не представили HTML-представление модального, я не могу предоставить вам конкретный ответ. Вот образцы, которые можно улучшить, чтобы соответствовать вашему использования:

element(by.css(".modalContent button[ng-click*=ok]")).click(); 
element(by.css(".modalContent")).element(by.buttonText("Decline")).click(); 

Другой подход мог бы найти все кнопки с определенным текстом и фильтр видимый один:

element.all(by.buttonText("Decline")).filter(function (button) { 
    return button.isDisplayed().then(function (isDisplayed) { 
     return isDisplayed; 
    }); 
}).first().click(); 
0

Просто поиск кнопки его текстом и использовать функцию click. Так что для вас это должно выглядеть так:

element(by.buttonText('Cancel')).click();