2012-06-22 13 views

risposta

3

È possibile utilizzare Thread.Sleep(500) (o equivalente) in qualsiasi lingua che si utilizza per eseguire WebDriver. Ciò causerà la pausa del thread per un numero esatto di millisecondi.

In alternativa è possibile utilizzare espliciti o attese implicite descritto here.

  • Le attese esplicite consentono di definire uno ExpectedCondition. Webdriver controllerà la condizione ogni 500 millisecondi finché non ritorna true (dopo di che l'esecuzione riprenderà immediatamente).

  • attese implicite causano WebDriver per mantenere tentativi tentativo di individuare qualcosa nel DOM. L'esecuzione riprenderà immediatamente dopo che l'elemento è stato trovato.

Si noti che né le attese implicite né quelle esplicite garantiranno una pausa di 500 millisecondi.

11

Non v'è alcun modo per controllare la velocità di ogni "step" in selenio WebDriver. Un tempo, c'era un metodo setSpeed() nell'interfaccia Options (nei collegamenti Java, altri collegamenti avevano costrutti simili sui loro oggetti con nome appropriato), ma era stato deprecato molto tempo fa. La teoria alla base di questo è che non dovresti aver bisogno di a priori rallentare ogni singolo passo del tuo codice WebDriver. Se devi aspettare che qualcosa accada nell'applicazione che stai automatizzando, dovresti utilizzare una routine di attesa implicita o esplicita.

+0

Qual è il codice java per l'attesa implicita ed esplicita in Selenium WebDriver? –

+4

Penso che la necessità più comune di 'setSpeed' sia quella di _developing_ i test automatici. Mi trovo in una situazione in cui passano 2 test, ma se li eseguo come suite, il 2 ° test fallisce. Sto cercando di eseguire il debug di ciò che sta accadendo, ma lo schermo si muove così velocemente che non riesco a vedere cosa sta realmente accadendo. – Snekse

+0

Ecco a cosa servono i breakpoint in un IDE (per le lingue statiche) o REPL (per le lingue dinamiche). – JimEvans

4

Non esiste un modo semplice. Ma c'è un trucco che puoi usare, puoi sovrascrivere i metodi del webdriver e introdurre un sonno esplicito per rallentare i tuoi test, ad es. Metodo findElement prioritario

public class _WebDriver extends FirefoxDriver { 

@Override 
public WebElement findElement(By by) { 
    try { 
     Thread.sleep(500); 
    } catch (InterruptedException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return by.findElement((SearchContext) this); 
} 

} 
Problemi correlati