2015-05-13 19 views
14

Tôi đã gặp sự cố khi sử dụng Thước đo góc. Tôi có một trạng thái ui-router thực sự kỳ lạ, nơi khó có thể tắt các phần tử khác để bắt đầu làm việc với trang. Có cách nào để nói cho thước đo góc chờ đợi cho đến khi một phần tử cuối cùng xuất hiện trong DOM? Không hiển thị/hiển thị, nhưng thực sự được tạo? Tôi tiếp tục cố gắng sử dụng chờ phần tử nhưng rõ ràng là không có sẵn để được chọn.Thước đo đang chờ phần tử nằm trong DOM

browser.driver.wait(function() { 
    return elem.isDisplayed(); 
}); 

Trả lời

34

Bạn sẽ có thể sử dụng browser.wait cùng với presenceOf ExpectedCondition:

var until = protractor.ExpectedConditions; 
browser.wait(until.presenceOf(elem), 5000, 'Element taking too long to appear in the DOM'); 
+12

Ý tưởng hay đặt tên là 'cho đến khi'! Các vấn đề dễ đọc. – alecxe

+0

Tính năng này chỉ khả dụng từ Protractor 2.0? –

+0

@ user2875134 Tôi không biết. –

8

Thước đo đã bao gồm ExpectedCondition để chờ rõ ràng cho phép bạn đợi yếu tố trong một khoảng thời gian nhất định. Bạn sẽ có thể làm như sau

var EC = protractor.ExpectedConditions; 

browser.driver.wait(function() { 
    browser.wait(EC.visibilityOf(elem), 10000); 
    return elem; 
}); 
-1

tham số đầu tiên của browser.wait là một chức năng, nếu chúng ta cần phải chờ đợi cho đến khi phần tử có mặt không phân biệt thời gian, thì chúng tôi có thể sử dụng mã bên dưới, Nếu bạn cần giới hạn thời gian chờ đến một thời điểm cụ thể, vui lòng cung cấp thời gian như tham số thứ hai của 'browser.wait'

browser.wait(function() { 
    return element(by.css("#edudrop1")).isPresent()}); 
Các vấn đề liên quan