2015-03-06 18 views
6

Tôi đang thử nghiệm ứng dụng AngularJS và rất mới đối với thước đo góc. Mỗi khi tôi mở trình duyệt, nó sẽ được mở và sau đó chờ thời gian chờ trước khi ném lỗi sau vào cmd.Đã hết thời gian chờ Protractor đồng bộ hóa với trang sau 50001ms

Timed out waiting for Protractor to synchronize with the page after 50001ms

Tôi đã cố gắng tăng giới hạn thời gian chờ, nhưng luôn luôn nhận được lỗi này. Tôi cũng đã cố gắng sử dụng tất cả các:

 browser.ignoreSynchronization = true; 
     browser.driver.sleep(5000); 
     browser.debugger(); 
     browser.waitForAngular(); 

Các tải trang đúng cách và nếu tôi sử dụng Eclipse và Selenium để tương tác với các đối tượng nút, nó chỉ hoạt động tốt.

Chỉ thước đo góc mới có sự cố Đồng bộ hóa. Hãy giúp tôi.

+0

bạn có thể cung cấp một số mã bạn có không? –

+0

Chỉ là một tệp cấu hình để mở trình duyệt mà nó làm, sau đó bấm vào một phần tử như phần tử (by.xpath ('// a [contains (@class, "ng-binding") và. = "Hello"]')).nhấp chuột(); – ASB

+0

Bạn đang sử dụng '.get (url)' ở bất kỳ đâu? Tôi nghĩ bạn sẽ cần điều hướng đến trang có ứng dụng Góc trên đó trước tiên. – Droogans

Trả lời

5

Có thể lý do tại sao thước đo sẽ ra thời gian:

  1. trang web của bạn không thực hiện kiễu góc một cách mong đợi (ví dụ với một ng-app trên thẻ body). Thông thường, lỗi bạn nhận được trong trường hợp này là Angular not found on page, nhưng thời gian chờ không nằm ngoài câu hỏi. Sử dụng ignoreSynchronization sẽ khắc phục điều này nếu đó là vấn đề, vì vậy đây không phải là bạn.
  2. Yêu cầu HTTP đang chờ xử lý hoặc không thành công. Mở bảng điều khiển dành cho nhà phát triển của bạn và kiểm tra tab "Mạng" khi trang tải với Thước đo góc (có thể xảy ra với Thước đo góc và không phải trong thử nghiệm thủ công). Nếu bạn tìm thấy điều gì đó không thành công, hãy đảm bảo rằng bạn đang đưa ra yêu cầu chính xác. Ví dụ: nếu bạn đang cố truy cập điểm cuối HTTP thông qua HTTPS, chắc chắn có thể yêu cầu sẽ không thành công và Thước đo góc sẽ hết thời gian chờ.
  3. Trang của bạn đang bỏ phiếu $timeout hoặc $http nhiều lần. Protractor sẽ không làm bất cứ điều gì cho đến khi Angular đã đạt đến trạng thái "nghỉ ngơi" (tất cả các phần tử và các ràng buộc dữ liệu được nạp và tất cả các yêu cầu đã trả về).

Danh sách chính thức lý do hết thời gian là ở đây: https://github.com/angular/protractor/blob/master/docs/timeouts.md.

Nhưng nếu bạn kiểm tra bảng điều khiển Javascript và yêu cầu Mạng khi trang tải, bạn sẽ có thể tìm ra điều gì sai. Chúc may mắn!

+0

Cảm ơn bạn vì điều này, tôi đang trong quá trình xác nhận với nhóm dev về các yêu cầu '$ timeout' hoặc' $ http'. – ASB

+0

cách bạn khắc phục sự cố của mình với yêu cầu tải? – puppeteer701

+0

@ MatjažJurečič, tôi cho rằng bạn đang nói về các yêu cầu HTTP. Đó là tất cả khá đơn giản. Nếu một trong các yêu cầu HTTP của bạn không thành công, nhóm dev cần sửa yêu cầu; nếu không, ứng dụng sẽ không hoạt động như mong đợi. Nếu nó chỉ dừng lại trong một thời gian dài (nghĩa là nó là một yêu cầu rất lớn) thì bạn cần phải tăng độ dài thời gian chờ trong tệp cấu hình thước đo của bạn (xem https: // github.com/angular/protractor/blob/master/docs/referenceConf.js để biết chi tiết). –

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