2016-06-24 10 views
3

Ich schreibe Winkelmesser Tests für eine bestehende App. Ich habe eine Schaltfläche ‚Decline‘ in einem modalen Fenster genannt, und ich versuche, es zu klicken mit:Klicken Sie auf eine Schaltfläche in einem Modal Window - Winkelmesser

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

Ich aber nehme die folgenden Fehler:

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

sein kann, weil ich eine andere Schaltfläche namens "Ablehnen" außerhalb des modalen Fensters?

enter image description here

Wie klicke ich auf die Schaltfläche Ablehnen modale Fenster?

Gefunden, dass dies der Js-Code ist, der diese Ablehnen-Schaltfläche anzeigt.

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

Antwort

2

Mein Kollegen empfohlen dies und es funktionierte:

ein Klick auf erster Rückgang Schaltfläche, um einen modalen eröffnet,

Schlaf für einige Zeit,

Klicken Sie nun auf die zweite Schaltfläche Ablehnen.

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

Vielen Dank für Ihre Hilfe :)

+0

Danke! Funktioniert perfekt! – Sharath

+0

Großartig :) Gut zu hören. –

-1

versuchen, den Code unten,

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

Was macht das? Können Sie bitte eine kurze Beschreibung geben? Da es zwei Buttons mit dem Button text Decline gibt, wie identifizieren wir den in modal? –

0

Schreiben Sie den Code , die unter modalen Fenster angezeigt werden muss, innerhalb Formular-Tag. Und serialisieren Sie dieses Formular mit dem vorhandenen Formular.

1

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

Eine Möglichkeit, das nähern würde Ihre Locator verbessern im Rahmen des modalen Inhalt zu arbeiten. Da Sie jedoch keine HTML-Darstellung des Modales bereitgestellt haben, kann ich Ihnen keine spezifische Antwort geben. Hier sind die Proben, die Sie verbessern können Ihren Anwendungsfall passen:

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

Ein weiterer Ansatz könnte sein, alle Tasten mit einem bestimmten Text zu finden und Filter des sichtbaren:

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

einfach den Knopf durch den Text suchen und die Funktion click verwenden. Also für Sie sollte es so aussehen:

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