SORU
12 EKİM 2012, Cuma


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
12 EKİM 2012, Cuma


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. fluentWaitbelge: 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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BenjiManTV

    BenjiManTV

    20 Mart 2011
  • Doc Adams

    Doc Adams

    20 HAZİRAN 2007
  • Lancome USA

    Lancome USA

    30 HAZİRAN 2009