onchange-Ereignis wird nicht auf Selen-Befehl ausgelöst

7

Ich tippe etwas Wert ein, bei Änderung mache ich total. Aber irgendwie wird dieses Ereignis nicht mit dem Selen-Befehl ausgelöst.

Ich habe auch versucht typeKey und typeAt .. Aber kein Erfolg. Irgendeine Abhilfe dafür?

    
Jigar Shah 14.01.2011, 10:13
quelle

7 Antworten

8

Um das Ereignis onchange auszulösen, fügen Sie diesen Befehl in Selenium IDE hinzu:

fireEvent targetID blur

    
trex 18.07.2012 05:23
quelle
6

Firefox hat einen Fehler , der verhindert, dass einige Ereignisse ausgeführt werden, während das Browserfenster nicht im Fokus ist . Dies kann ein Problem sein, wenn Sie Ihre Automatisierungstests ausführen - die möglicherweise auch dann eingeben, wenn das Fenster nicht im Fokus ist.

Um dieses Problem zu beheben, habe ich das Änderungsereignis "manuell" ausgelöst und JavaScript in meine Tests eingefügt.:

%Vor%

Wie Sie vielleicht bemerkt haben, verwende ich jQuery, um das Änderungsereignis auszulösen. Wenn Sie jQuery nicht in Ihrer App verwenden, können Sie hier wie man es mit Vanille-Javascript auslöst.

Hoffe, dass es jemandem hilft.

    
Marlon Bernardes 26.07.2013 03:40
quelle
3

Wenn Sie Selenium 1.x verwenden, gibt es einen fireEvent-Befehl, mit dem Sie das onChange-Ereignis manuell auslösen können, nachdem Sie den Wert eingegeben haben. Vielleicht würde das dein Problem lösen?

    
Andy Tinkham 15.01.2011 08:02
quelle
1

Das hat bei mir in der IDE funktioniert Führe die folgenden 3 Befehle nacheinander durch

%Vor%

Die Quelle sieht so aus (Eingabe war Buchstabe r )

%Vor%     
dan 26.01.2012 15:39
quelle
1

Es sieht so aus, als ob der Befehl "sendKeys" implementiert wurde, um dies zu korrigieren:

Ссылка

Das hat für mich funktioniert.

%Vor%     
eTool LCA 05.05.2015 17:44
quelle
1

Ihre Lösung wird normalerweise gefunden, indem Sie den JavaScript-Code betrachten.

Eine Option, die Sie immer haben, besteht darin, den Wert einzugeben und das aktuelle OnChange-Ereignis manuell aus dem Code auszulösen.

Es gibt ein offenes Problem zu diesem Linktext Problem mit FireFox Windows ist nicht aktiv und verhindert, dass OnChange ausgelöst wird.

Versuchen Sie dies, bevor Sie den Befehl typeKeys verwenden:

%Vor%     
StefanE 14.01.2011 15:16
quelle
0

Ich hatte ein ähnliches Problem mit einer Dropdown-Liste mit Ajax.
Wenn der Benutzer ein Feld eingibt, zeigt das System AJAX div w mit mehreren Optionen an, jede als Verknüpfung mit target='#'

Und noch schlimmer, es gab eine Funktion namens onChange () , die ein Systemflag füllte, und dieses Flag würde als Validierung für das form.submit () verwendet werden. (oh, der Schmerz)

Wie auch immer, meine Lösung dafür:
1 - Selenium sendKeys Befehl, so dass das Ajax div erscheint

%Vor%

2 - Warten Sie, bis die Verknüpfung mit der erwarteten Option angezeigt wird.

%Vor%

3 - selen clickAt der Link

%Vor%


4 - Hier ist der EINE der Fänge: manuell die Ereignisse onChange () AND blur auslösen. Achten Sie außerdem darauf, dass der Browser den Fokus auf das Feld anders legt

%Vor%

5 - Schließlich habe ich Selenium dazu gebracht, den ClickAt () -Befehl auf der Submit-Schaltfläche der Form auszuführen, zwischen einem mouseDown- und MouseUp-Befehl

%Vor%


Nicht elegant, aber es hat funktioniert.

    
EdSparen 08.07.2016 21:01
quelle