@pavel_kazlou, così per quanto riguarda la tua domanda sul FluentWait: Fondamentalmente ci sono due tipi di attesa: esplicita attesa
WebDriverWait.until(condition-that-finds-the-element)
attesa implicito
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
differenza è
- Ovvio: il tempo di attesa implicito viene applicato a tutti gli elementi nello script ma Solo esplicito per l'elemento specifico
- In Esplicito è possibile configurare, con quale frequenza (invece di 500 millisecondo) si desidera controllare la condizione.
- In esplicita è anche possibile configurare per ignorare altre eccezioni rispetto "NoSuchElement" fino timeout .. Utilizzare un FluentWait che funziona in modo simile a WebDriverWait (che di fatto estende FluentWait), ma si dà un po 'più di flessibilità.
Ecco l'esempio di utilizzo di WebDriverWait (Utilizzare un costruttore WebDriverWait diverso per specificare l'intervallo di polling dell'elemento (misurato in millisecondi).):
new WebDriverWait(webDriver(), 10, 50).until(ExpectedConditions.elementToBeClickable(By.xpath(menuItemXpath)));
Utilizzando un FluentWait che funziona in modo simile a WebDriverWait (che di fatto estende FluentWait), ma si dà un po 'più di flessibilità: in particolare, la possibilità di scegliere l'eccezione WebDriver di ignorare. Esempio utilizzo:
new FluentWait(webDriver())
.withTimeout(timeout, TimeUnit.SECONDS)
.pollingEvery(50, TimeUnit.MILLISECONDS)
.ignoring(NoSuchElementException.class)
.until(ExpectedConditions.elementToBeClickable(By.xpath(menuItemXpath)));
Per concludere la mia nota: fluentWait è un tipo esplicito di aspettare e si offre la possibilità di scegliere in modo esplicito il tipo di eccezione WebDriver di ignorare, dove come ogni attesa implicita comprende importo fisso di tempo di attesa per qualsiasi webElement. IMHO fluente L'approccio Wait è più solido da questo punto di vista.
fonte
2012-10-24 09:51:35
ho giocato un po 'in giro con 'driver.findElements (By.cssSelector (" [id = a] [id = b ] "))' ma non è un * o *. Non ho trovato un selettore css * o *. L'approccio – VolkerK