2014-12-02 18 views
18

Lần chạy đầu tiên của tôi tại các bài kiểm tra E2E. Tôi đang cố gắng tiêu hóa các bài kiểm tra thước đo góc của người khác.Tại sao tôi phải sử dụng browser.sleep trong khi viết các bài kiểm tra thước đo góc

Sự cố: Có rất nhiều browser.driver.sleep và điều này có vẻ mong manh.

Mục tiêu: không sử dụng browser.driver.sleep

Câu hỏi: một cách tiếp cận tốt hơn để browser.driver.sleep là gì? Một cái gì đó ít mong manh như một lời hứa hay một cái gì đó tôi không biết về lol?

var config = require('../../protractor.conf.js').config; 
describe('this Homepage Body Tests', function(){ 
browser.driver.get(config.homepageUrl); 

it("should open find a clinic page", function(){ 
    // page loads :: want to fix this random wait interval 
    browser.driver.sleep(2000); 
    browser.ignoreSynchronization = true; 

    var string = 'clinic'; 
    var main = '.search-large-text'; 
    var link = element(by.cssContainingText('.submenu li a', string)); 

    link.click().then(function() { 
    // page reloads :: want to fix this random wait interval 
    browser.driver.sleep(3000); 
    var title = element(by.cssContainingText(main, string)); 
    expect(title.getText()).toBe(string); 
    }); 
}); 
}); 

Trả lời

11

Kể từ khi có một ignoreSynchronization bật, bạn không thể sử dụng waitForAngular(), đó sẽ là một giải pháp trong trường hợp kiểm tra góc chỗ.

Một giải pháp tốt hơn đây sẽ là để thiết lập một trang tải timeout:

browser.manage().timeouts().pageLoadTimeout(10000); // 10 seconds 

Xem thêm những chủ đề có liên quan về chờ đợi rõ ràng và timeout:

+0

Thật không may khi chúng tôi xoay quanh trang web của chúng tôi hoàn toàn để góc cạnh trang chủ vẫn còn trong đường ray. –

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