2016-07-15 6 views
0

Also um des Lernens willen versuche ich den Suchvorgang in Expedia.com zu automatisieren. Mein Code wählt "Bündel Angebote", dann "Flug + Hotel + Auto" beginnt dann die Eingabe von Werten. (abhängig von Ihrem Standort, können Sie verschiedene Sätze von Panels sehen)Wie löscht man Werte, die mit Selenium WebDriver in JS eingegeben wurden?

Das Problem ist, ich versuche, das Abflug-und Ankunftsdatum zu automatisieren, indem Sie sie auswählen und ein Datum in mm/TT/JJJJ-Format einfügen. Alles läuft perfekt, bis es versucht, das Datum im Rückkehrdatum einzugeben. Es gibt das Datum ein, und dann ändert JS das Datum zurück und mein Test schlägt fehl.

public void selectDepartingDate(String date) 
{ 
    WebElement dte= driver.findElement(departDate); 
    dte.sendKeys(date); 


} 

public void selectReturningDate(String date) 
{ 
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
    WebElement dte= driver.findElement(arrivalDate); 

    dte.sendKeys(date); 


} 

Wie genau kann ich das lösen?

Antwort

2

Es scheint, Sie müssen es klicken und zu löschen, bevor Sendkeys:

public void selectReturningDate(String date) 
{ 
    WebElement dte= driver.findElement(arrivalDate); 
    det.click(); 
    dte.clear(); 
    dte.sendKeys(date); 
} 
+0

Haben Sie es versuchen? Als ich es versuchte, löschte es, fügte das Datum hinzu, das ich hinzufügen wollte, aber als das Skript weiterging, kehrte das Datum zurück zu dem Datum zurück, das von js kommt. Der Test schlägt also fehl. – gasmsk

+0

@gasmsk ja, ich habe es versucht und es funktioniert gut. Können Sie die implizite Wartezeit entfernen und es erneut versuchen? – Buaban

+0

Ich tat, immer noch zurück auf das Datum js, wenn das Skript voranschreitet. Was soll ich machen? – gasmsk

Verwandte Themen