Frage Klicken Sie auf die Schaltfläche OK in einer Warnung (Selenium IDE)


Ich muss auf die Schaltfläche "OK" in einem Warnfenster mit einem Klick auf klicken Selen Befehl. ich habe es versucht assertAlert oder verifyAlert aber sie tun nicht, was ich will.

Es ist möglich, dass Sie auf die Schaltfläche "OK" klicken. Wenn ja, kann mir jemand ein Beispiel für den Selenium IDE Befehl geben?


60
2017-08-28 19:36


Ursprung


Antworten:


Versuchen Sie Selenium 2.0b1. Es hat einen anderen Kern als die erste Version. Es sollte Popup-Dialoge entsprechend unterstützen Dokumentation:

Popup-Dialoge

Beginnend mit Selenium 2.0 Beta 1, gibt es Unterstützung für die Bearbeitung von Popup-Dialogfeldern. Nachdem Sie eine Aktion ausgelöst und eine Aktion ausgeführt haben, die ein Popup öffnet, können Sie folgendermaßen auf die Warnung zugreifen:

Java

Alert alert = driver.switchTo().alert();

Rubin

driver.switch_to.alert

Dies wird das aktuell geöffnete Alarmobjekt zurückgeben. Mit diesem Objekt können Sie nun akzeptieren, ablehnen, den Inhalt lesen oder sogar eine Eingabeaufforderung eingeben. Diese Schnittstelle funktioniert gleichermaßen bei Alarmen, Bestätigungen und Aufforderungen. Weitere Informationen finden Sie in den JavaDocs.


46
2018-02-08 14:17



Klicken Sie auf die Schaltfläche "OK" in einer Warnmeldung:

driver.switchTo().alert().accept();

35
2018-02-22 07:47



Dies ist eine Antwort von 2012, die Frage, ob von 2009, aber die Leute sehen es immer noch an und es gibt nur einen richtigen (verwenden WebDriver) und eine fast nützliche (aber nicht gut genug) Antwort.


Wenn Sie Selenium RC verwenden und tatsächlich einen Alarmdialog sehen können, ist dies nicht möglich. Selen sollte es für Sie handhaben. Aber, wie in der Selenium-Dokumentation angegeben:

Selen versucht, diese Dialoge vor Ihnen zu verbergen (durch Ersetzen   window.alert, window.confirm und window.prompt), damit sie nicht aufhören   Ausführung Ihrer Seite. Wenn ein Popup-Fenster angezeigt wird, ist dies der Fall   wahrscheinlich, weil es beim Laden der Seite ausgelöst hat   normalerweise zu früh, um die Seite zu schützen.

Es ist eine bekannte Einschränkung von Selenium RC (und daher auch Selenium IDE) und einer der Gründe, warum Selenium 2 (WebDriver) entwickelt wurde. Wenn Sie damit umgehen wollen onload JS Warnungen, Sie brauchen WebDriver verwenden  Alert-Handhabung.

Das heißt, Sie können verwenden Robot oder selenium.keyPressNative() um irgendeinen Text auszufüllen und drücken Sie Eingeben und bestätige den Dialog blind. Es ist nicht der sauberste Weg, aber es könnte funktionieren. Du wirst nicht in der Lage sein, das zu bekommen alert Nachricht jedoch.

Robot hat alle nützliche Tasten auf Konstanten zugeordnet, so dass es einfach sein wird. Mit keyPressNative(), die du benutzen willst 10 als Wert zum Drücken Eingeben oder 27 zum Esc da es mit arbeitet ASCII-Codes.


10
2018-05-25 10:01



1 | Popup-Text für Warnungen drucken und schließen -I

Alert alert = driver.switchTo().alert();
System.out.println(closeAlertAndGetItsText());

2 | Drucken Sie den Popup-Text der Warnung und schließen Sie -II

Alert alert = driver.switchTo().alert();
System.out.println(alert.getText()); //Print Alert popup
alert.accept(); //Close Alert popup

3 | Alarm-Popup-Text anzeigen und schließen

Alert alert = driver.switchTo().alert();
assertEquals("Expected Value", closeAlertAndGetItsText());

4
2017-10-29 09:31



Wenn Sie Selen IDE verwenden, müssen Sie manuell auf OK klicken, denn wenn der Befehl "Alarmmeldung" ausgeführt wird, hört der Browser auf zu arbeiten und wenn Sie automatisch auf "OK" klicken, müssen Sie selen RC oder webdriver verwenden und der folgende Befehl ist für Selenium IDE

In Selenid verwenden storeeval Befehl, andere Art von Boxen

    storeEval | alert("This is alert box")                           |
    storeEval | prompt("This is prompt box. Please enter the value") | text
    storeEval | confirm("this is cofirm box")   |

4
2018-03-21 08:56



Sie könnten nachsehen chooseOkOnNextConfirmation, obwohl das wahrscheinlich das Standardverhalten sein sollte, wenn ich die Dokumente richtig lese.


2
2017-08-28 19:39



Die Frage ist nicht klar - ist dies für eine Warnung beim Laden der Seite? Bei der Verwendung von Selenium sollten keine Warndialoge angezeigt werden alert() mit einer eigenen Version, die nur die zur Verifizierung angegebene Nachricht erfasst.

Selen unterstützt nicht alert() beim Laden der Seite, da die Funktion im zu testenden Fenster mit einer eigenen Version gepatcht werden muss.

Wenn Sie Onload-Warnungen von der zu testenden Anwendung nicht loswerden können, sollten Sie mithilfe von GUI-Automatisierung versuchen, auf die erstellten Popups zu klicken, z. AutoIT wenn Sie unter Windows sind.


2
2018-02-08 11:28