2014-04-04 14 views

Trả lời

7
+0

+1 cho câu trả lời đúng, nhưng điều đó thực sự không may :(, Tại sao họ không có getter cho giá trị đó ... –

+0

liên kết đã chết vui lòng cập nhật chúng – Vlad

3

Tôi biết tôi là một vài năm cuối, và @JaneGoodall là không sai - không có tích hợp chức năng cho điều đó. Nhưng đó là không phải là không thể!

Không khó để tạo phiên bản giao diện WebDriver và lớp trình điều khiển dành riêng cho trình duyệt của riêng bạn. Và sau đó, bạn có thể đặt bất kỳ mã nào bạn muốn vào trình điều khiển!

Ví dụ:

MyDriver.java (phiên bản chuyên của WebDriver, không hoàn toàn bắt buộc nhưng rất tốt ý tưởng):

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

MyChrome.java (phiên bản chuyên của ChromeDriver - hoạt động tương tự cho bất kỳ trình duyệt)

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; 
    } 
} 

Và bây giờ, để sử dụng nó, MyProgram.java:

public class MyProgram { 
    MyDriver driver = new MyChrome(); 
    driver.setWait(10); 
    assert(driver.getWait() == 10); 
} 

Tôi hy vọng điều này hữu ích!

+0

Sẽ dễ dàng hơn nhiều khi chỉ cần chờ đợi mong muốn Sau đó, bạn có thể tham khảo biến bất cứ lúc nào bạn muốn – JeffC

+0

Chắc chắn, nhưng đôi khi bạn cần giá trị đó để được đóng gói với chính đối tượng trình điều khiển. . – forresthopkinsa

1

Dành cho những người đến đây từ google. Vào năm 2018, dường như có một phương pháp để có được những thời gian chờ đó ít nhất bằng javascript (tôi biết câu hỏi là về java):

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

Hy vọng điều này sẽ hữu ích.

Các vấn đề liên quan