2014-04-04 13 views

cevap

3

Ben geç bir kaç yıl olduğumu ve @JaneGoodall yanlış değil - hayır yerleşik işlevi bunun için vardır. Ama bu imkansız değil!

WebDriver arabiriminin ve tarayıcınıza özgü sürücü sınıfının kendi sürümlerini oluşturmak çok zor değil. Ve sonra, istediğin kodu sürücüye koyabilirsin!

Örnek:

MyDriver.java (WebDriver olarak değil zorunlu ama çok iyi bir fikir yerine uzman sürümü):

public interface MyDriver extends WebDriver { 
    void setWait(int timeout); 
    int getWait(); 
} 

MyChrome.java (ChromeDriver yerine uzman sürümü - için aynı şekilde çalışır herhangi bir tarayıcı) artık

public class MyChrome extends ChromeDriver implements MyDriver { 
    int timeout = 0; 
    public void setWait(int timeout) { 
     this.timeout = timeout; 
     this.manage().timeouts().implicitlyWait(timeout, TimeUnit.SECONDS); 
    } 
    public int getWait() { 
     return timeout; 
    } 
} 

Ve kullanmak, MyProgram.java:

Umarım bu yardımcı olur!

+0

İstenilen bekletmeyi ayarlamak çok daha kolay olurdu Bir değişken kullanarak zaman.Daha sonra istediğiniz zaman değişkene başvuruda bulunabilirsiniz – JeffC

+0

Elbette, sürücü nesnesinin kendisi ile paketlenecek bu değere ihtiyacınız vardır.Bu çözüm, sürücünün kullanıldığı her yere bir değişkeni geçirmekten çok daha temizdir. . – forresthopkinsa

1

Buraya Google'dan gelenler için. javascript en azından o zaman aşımları almak için bir yöntem var gibi 2018 yılında görünüyor (ben soru java hakkında olduğunu biliyoruz): Bu yardımcı olacaktır

const {implicit, pageLoad, script} = await driver.manage().getTimeouts(); 

Umut.