Nasıl Selenyum-WebDriver Java birkaç saniye beklemenizi rica edebilir miyim?
Bir Java, C vitamini-WebDriver çalışıyorum. Ekledim
driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
ve
WebElement textbox = driver.findElement(By.id("textbox"));
benim Uygulamalar birkaç saniye Kullanıcı Arayüzü yüklemek için alır çünkü. 2 saniye implicitwait aldım. ama aldımeleman textbox bulunamadı
Sonra Thread.sleep(2000);
ekliyorum
Şimdi gayet iyi çalışıyor. Hangisi daha iyi bir yolu var mı?
CEVAP
Peki, bekle iki türü vardır: açık ve kapalı bekleyin. Açık bekleme fikri
WebDriverWait.until(condition-that-finds-the-element);
Örtülü bekle kavramıdır
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
Ayrıntıları fark here alabilirsiniz.
Bu gibi durumlarda açık bekle (özelliklefluentWait
) kullanmayı tercih ederdim:
public WebElement fluentWait(final By locator) {
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(5, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
WebElement foo = wait.until(new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(locator);
}
});
return foo;
};
fluentWait
döndürür bulunan web öğesi işlevi.
fluentWait
belge:
Zaman aşımı ve yoklama aralığı, anında yapılandırılan Bekle arabirimi uygulaması.
Her FluentWait örnek bir durum için beklemek için zaman maksimum miktarda, hangi ile durumunu kontrol etmek için frekansı tanımlar. Bunun yanı sıra, kullanıcı sayfadaki bir öğe ararken bekleme istisnalar beklerken, NoSuchElementExceptions gibi belirli türde görmezden yapılandırabilir.
Detaylar here alabilirsiniz
Sizin durumunuzda fluentWait
kullanım şunlar olabilir:
WebElement textbox = fluentWait(By.id("textbox"));
Bu yaklaşım, tam olarak ne kadar beklemek bilmiyorum daha iyi IMHO ve yoklama aralığı ile doğrulanacaktır keyfi timevalue ayarlayabilirsiniz . Saygılar.
Nasıl olursa çarparak iki sayı Java ta...
Nasıl Selenyum WebDriver içinde seçili...
Nasıl bir dize başka bir dize içeriyor...
Nasıl Java iki dizi bir arada olabilir...
Nasıl Java "X dakika x saniye&quo...