2016-04-22 15 views
0

Snippet Code:Klicken Sie doppelt auf eine Schaltfläche mit Protractor

<div class="add create_Amenities" hs-gesture="{handler:showPopup, param:menu_group}" ng-if="showPlus(menu_group,$index)"> 

Gewünschte Aktion: Klicken Sie doppelt auf eine Schaltfläche, die auf der nächsten Seite gehen würde.

Ich gebe den folgenden Befehl, mein Browser erscheint, aber ich muss manuell noch einmal auf die Schaltfläche "Hinzufügen" klicken, um mit der nächsten Seite fortzufahren. Der Befehl macht einen Klick

Frage: Wie kann ich diesen Befehl ein Doppelklick auf die Schaltfläche (Hinzufügen) machen. Ich habe es auf verschiedene Arten versucht, aber ich war nicht erfolgreich. Irgendwelche Ideen?

browser.driver.actions().mouseMove(element(by.css('.add.create_Amenities'))).perform(); 

element.all(by.css('.add.create_Amenities')).then(function (elm) { 

    elm[0].click(); 
}); 
+0

Können Sie 'click()' einfach zweimal aufrufen? 'elm [0] .click(); elm [0] .click(); ' – Gunderson

+0

Es gibt Möglichkeiten, dies in Winkelmesser wie' browser.actions() zu tun. DoubleClick (Element) .perform(); 'https://github.com/angular/protractor/ Probleme/2989 Leider ist ein Fehler damit verbunden und bis das Problem behoben ist, würde ich einfach zweimal auf das Element klicken, um vielleicht eine Doppelklick-Hilfsfunktion zu schreiben. – sonhu

+0

Ich habe versucht, zweimal auf das Element zu klicken, wie es vorgeschlagen wurde, aber die Schaltfläche wird aus irgendeinem Grund nicht angeklickt. – Kevin

Antwort

0

ich Multiples von Online-Community hilft verwendet und ich machte den Doppelklicken Sie für mich arbeiten. Der Schlüssel für mich war eine Verzögerung von 1 Sekunde zwischen jedem Klick. Wenn ich die Verzögerung entferne, tritt der Doppelklick nicht auf.

var AddButton = element(by.css(".add.create_Amenities")); 
browser.actions().mouseDown(AddButton).mouseUp().perform(); 
browser.sleep(1000);  
browser.actions().mouseMove(AddButton).click().perform(); 
1
let addButton = $('.add.create_Amenities'); 
addButton.click(); 
addButton.click(); 

Oder wenn Sie bevorzugen Aktionen:

let addButton = $('.add.create_Amenities'); 

browser.actions() 
    .click(addButton) 
    .click(addButton) 
.perform(); 

// Didn't tried this: 
browser.actions().doubleClick(addButton).perform(); 
+0

Ich habe Ihre vorgeschlagenen Befehle ausprobiert, aber es würde einfach nicht auf die Schaltfläche "Hinzufügen" klicken. – Kevin

0

Try this:

browser.actions().doubleClick(browser.element(by.css('.add.create_Amenities'))).perform(); 
+0

Nick, ich habe versucht, Ihren vorgeschlagenen Befehl, aber es würde nicht auf die Schaltfläche – Kevin

+0

klicken, was war der Fehler? [Versuchen Sie, zu debuggen] (https://angular.github.io/protractor/#/api?view=Protractor.prototype.enterRepl) – Nick

+0

Kein Fehler überhaupt. Klickt einfach nicht auf das Element. – Kevin

Verwandte Themen