2008-09-08 19 views
6

Chúng tôi đang sử dụng WatiN để thử nghiệm giao diện người dùng của chúng tôi, nhưng một trang (rất tiếc là không thuộc quyền kiểm soát của nhóm chúng tôi) sẽ mất vĩnh viễn để hoàn tất tải. Có cách nào để WatiN nhấp vào một liên kết trên trang trước khi trang kết thúc hiển thị hoàn toàn không?Có cách nào để làm cho WatiN nhấp vào liên kết trước khi trang kết thúc tải

+0

Thời gian Watin chờ đợi được điều khiển bởi thuộc tính WaitForLoadTimeout. Đây là một bài đăng trên blog mà nói một chút về nó: http://blog.agilejedi.com/2008/08/watin-installed.html

+0

Thật không may là WatiN không chờ đợi đủ lâu, nó chờ đợi cho đến khi tải trang trước khi nó làm bất cứ điều gì. Chúng tôi tìm thấy giải pháp, tải trang bằng 'ClickNoWait()' Sau đó tìm liên kết trên trang như bình thường, nhưng gọi 'WaitUntilExists() 'trên liên kết trước khi gọi' Nhấp() '. Bằng cách này, WatiN sẽ nhấp vào liên kết ngay khi nó được tải, không đợi cho đến khi toàn bộ trang được tải. –

Trả lời

11

Dưới đây là đoạn mã chúng tôi thấy làm việc:

IE browser = new IE(....); 
browser.Button("SlowPageLoadingButton").ClickNoWait(); 
Link continueLink = browser.Link(Find.ByText("linktext")); 
continueLink.WaitUntilExists(); 
continueLink.Click(); 
+1

+1 để trả lời cho câu hỏi của bạn;) Và câu trả lời hay! –

0

Bạn sẽ có thể bỏ qua các cuộc gọi đến WaitUntilExists() kể từ WatiN thực hiện điều này trong nội bộ khi bạn gọi một phương pháp hoặc tài sản trên một yếu tố (như link.Click() trong bạn rexample).

HTH, Jeroen van Menen dev Chì WatiN

+1

Nhưng tôi không gọi nhấp chuột, tôi gọi ClickNoWait() không có nghĩa là nó sẽ không chờ đợi trừ khi tôi gọi WaitUntilExists()? –

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