Ich habe eine Webseite mit zwei Dropdowns. Wenn Sie eine Option in einem Dropdown-Menü auswählen, wird die Liste der Optionen im anderen Dropdown-Menü durch ein Skript aktualisiert, das durch das Blur-Ereignis ausgelöst wird. Das Blur-Ereignis wird ausgelöst, wenn sich der Fokus vom ersten Dropdown-Feld entfernt. Dies alles funktioniert gut, wenn Sie die Seite manuell navigieren.Aktionen über WebDriver lösen das Unschärfeereignis nicht aus
Wenn jedoch die gleichen Schritte über WebDriver ausgeführt werden, wird das Blur-Ereignis nie ausgelöst und das Dropdown-Menü wird daher nie aktualisiert, wodurch mein Skript fehlschlägt.
Hier ist der HTML-Code für die Drop-Down-I zuerst auswählen (und die die onblur Skript mit ihm verbunden hat:
<select id="newOrder:shipToAddressType" class="fieldRequired" onblur="PrimeFaces.ab({source:this,event:'blur',process:'newOrder:odShipData',update:'newO>rder:odShipData',partialSubmit:true,oncomplete:function(xhr,status,args)>{focusOnShipToZip();;}}, arguments[1]);" tabindex="47" size="1" name="newOrder:shipToAddressType">
<option selected="selected" value="125">Domestic</option>
<option value="126">International</option>
<option value="127">Military</option>
</select>
Hier ist, was ich bisher ausprobiert habe:
Navigation auf der Seite, wie ich würde manuell Ich mache die Auswahl im Dropdown, dann geben Sie Text in einem anderen Feld ein, um den Fokus weg von der Dropdownliste zu verschieben, um das Unschärfeereignis auszulösen.Dies hat nicht funktioniert.Ich habe auch versucht, Tab aus dem Dropdown, auch nein Glück
Ausführen von Javascript zum Auslösen des Unschärfeereignisses Ich weiß, dass das Javascript korrekt ist, da ich es erfolgreich von Firebug ausführen kann: es löst ein Update des zweiten Dropdowns aus. Von WebDriver scheint es jedoch nichts auszulösen.
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementById('newOrder:shipToAddressType').blur()");
Irgendwelche Vorschläge? Danke für Ihre Hilfe.
Edit: Ich habe versucht, 'Return' zum Skript-String hinzuzufügen. Auch hat nicht funktioniert:
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("return document.getElementById('newOrder:shipToAddressType').blur()");
Danke für die Eingabe. Ich hatte das Tabbing bereits versucht (siehe meinen ursprünglichen Post), aber ich hatte noch nicht versucht, die Rückkehr hinzuzufügen. Ich werde es versuchen. Vielen Dank. – user973718
'Rückkehr' zu meiner JavaScript-Zeichenfolge hinzugefügt. Keine Änderung: Kein Blur-Ereignis ausgelöst. Diese Option wurde dem OP – user973718
hinzugefügt. Bitte stellen Sie in Ihrem Javascript sicher, dass das WebDriver-Element an Sie zurückgegeben wird, indem Sie die Datei '.blur()' entfernen. Ihre 'js'-Variable sollte ein WebDriver-Element enthalten. Wenn das nicht der Fall ist, funktioniert die Unschärfe nicht ... es kann das Element nicht richtig finden! Wenn es so ist, werden wir von dort weitermachen. – bbbco