2017-02-02 3 views
0

Ich habe ein seltsames Problem mit der sendKeys-Methode auf meinem Selenium-Test. In meiner Webapp habe ich viele Eingaben mit Standardwerten, ich bekomme diese Eingaben mit einem findElements() und dann versuche ich sie zu füllen, sehr einfach. zu vereinfachen, habe ich so etwas wie das:Selen sendKeys an den falschen Eingang

List<WebElement> allInputs = driver().findElements(By.className("pouet")); 
for (WebElement e : allInputs) { 
    e.clear(); 
    e.sendKeys("pouet"); 
} 

Und es kann da nicht manchmal die Sendkeys() füllt den falschen Eingang während der klaren() wurde auf der rechten Eingabe korrekt ausgeführt.

Hat schon jemand diese Art von Problem konfrontiert?

Vielen Dank :)

Antwort

1

Es ist seltsam, aber es passierte in meinem Fall, manchmal schrieb mein firefoxdriver in falschem Feld, auch wenn alle Felder gefunden einzigartig und erfolgreich waren. Kleine Zeitspanne zwischen zwei sendKeys() -Aufrufen löste das Problem. Ich habe nicht mit Schlaf (Sie könnten versuchen mit Thread.sleep(5000) nur für den Test, um sicherzustellen, dass es das ist), einfache Überprüfung, wenn der richtige Text in das Feld zwischen diesen beiden Aufrufen geschrieben wurde genug Zeit, so dass nächste sendKeys() im richtigen Feld schreibt.

+0

Ich wollte vermeiden, diese Schlaf in meinem Test zu verwenden, und vielleicht kann die Textüberprüfung genug sein, um das zu vermeiden, ich werde es versuchen, danke;) –

0

Dies ist für meinen Fall manchmal meine klar schien gescheitert zu sein und meine sendKeys den vorherigen Wert anhängen. Also muss ich Thread.sleep (1000) zwischen e.clear() und e.sendKeys() setzen.

Jedoch basierend auf Ihrer Beschreibung scheint es Ihr Problem ist mehr nicht in der Lage, auf das richtige Textfeld zu zeigen. Sie sollten versuchen, den Schlaf nach dem sendKeys() wie @acikojevic sagte.

+0

Ich wollte diesen Schlaf vermeiden, aber es scheint, dass ich gezwungen werde :(Ich werde versuchen, @acikojevic Trick machen eine einfache Textüberprüfung nach jedem sendKeys. Danke :) –

+0

ja, soweit ich weiß gibt es keine Möglichkeit, um es herum. es sei denn, vielleicht hat der zukünftige Fahrer dies behoben. – Rudy

Verwandte Themen