2015-10-23 17 views

Trả lời

11

Thêm mã này vào hàm onPrepare() của tệp conf.js của thước đo góc. Lý do để thêm implicitlyWait() là do chờ đợi ngầm là thời gian mặc định mà thước đo góc chờ trước khi vượt qua hoặc ném một lỗi cho một hành động. Cho phép thước đo góc biết thời gian chờ ngầm định là gì, ngay cả trước khi các thử nghiệm bắt đầu là cách tốt nhất để sử dụng nó và onPrepare() chạy trước tất cả các dãy thử nghiệm và chỉ một lần.

Ví dụ kịch bản:

Giả sử bạn có các dòng dưới đây của mã -

element(LOCATOR).getText(); 

trong spec thử nghiệm của bạn và thước đo thực hiện nó sau khi bắt đầu tự động hóa trên trang. Bây giờ, nếu phần tử với định vị được chỉ định không được tìm thấy trên trang, thì thước đo góc không ném một lỗi ngay lập tức, nhưng nó chờ đợi thời gian chờ đợi để hoàn tất. Trong khi đó cho đến khi hết thời gian chờ, nó sẽ kiểm tra xem phần tử có thể được đặt trên DOM hay không. Vào cuối thời gian chờ implicit nếu không tìm thấy phần tử, thì thước đo góc sẽ ném ra lỗi tương ứng. Vì vậy, đối với tất cả các hoạt động mà bạn thực hiện nó là cần thiết để cho protractor biết thời gian chờ đợi tiềm ẩn tốt trước khi tay.

Cách sử dụng:

onPrepare: function(){ 
    browser.manage().timeouts().implicitlyWait(5000); 
}, 
+0

Cảm ơn bạn rất nhiều! Bạn đã giúp tôi rất nhiều điều để hiểu. – winlinuz

+0

Có, browser.manage(). Timeouts(). ImplicitlyWait (5000); cũng chờ đợi sự hiển thị của phần tử hoặc sự hiện diện của phần tử trong DOM? [Girish] (https://stackoverflow.com/users/4180674/girish-sortur) –

+0

Nếu phần tử có trong DOM, nhưng không hiển thị, thì trong trường hợp này, Protractor có ngầm chờ nó trước khi ném một lỗi không? ("phần tử không hiển thị?") –