Có câu hỏi khác về SO với cùng một vấn đề, nhưng các giải pháp đã không làm việc cho tôi. Đây spec.js tôing: kiểm tra không tìm thấy bộ phun cho đối số phần tử để getTestability
describe('Protractor Demo App', function() {
it('should have a title', function() {
browser.driver.get('http://rent-front-static.s3-website-us-east-1.amazonaws.com/');
expect(browser.getTitle()).toEqual('How It Works');
});
});
Và đây conf.js tôi
exports.config = {
framework: 'jasmine',
rootElement: 'body',
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['spec.js']
}
Vì vậy, khi tôi cố gắng để chạy im thử nghiệm của tôi nhận được lỗi
Message:
Failed: Error while waiting for Protractor to sync with the page: "[ng:test] no injector found for element argument to getTestability\nhttp://errors.angularjs.org/1.5.0/ng/test"
Stack:
Error: Failed: Error while waiting for Protractor to sync with the page: "[ng:test] no injector found for element argument to getTestability\nhttp://errors.angularjs.org/1.5.0/ng/test"
at C:\Users\ShapeR\PycharmProjects\ratest\node_modules\jasminewd2\index.js:101:16
at Promise.invokeCallback_ (C:\Users\ShapeR\PycharmProjects\ratest\node_modules\selenium-webdriver\lib\promise.js:1329:14)
at TaskQueue.execute_ (C:\Users\ShapeR\PycharmProjects\ratest\node_modules\selenium-webdriver\lib\promise.js:2790:14)
at TaskQueue.executeNext_ (C:\Users\ShapeR\PycharmProjects\ratest\node_modules\selenium-webdriver\lib\promise.js:2773:21)
1 spec, 1 failure
Tôi có một bootstrapping thủ công cho phần tử body và đặt rootElement thành body trong config, nhưng nó không giúp được gì. Tôi thậm chí đã cố gắng để loại bỏ nâng cấp bằng tay và chỉ cần thêm ng-app = 'rentapplicationApp' vào phần tử cơ thể, nhưng nó không thay đổi gì, vẫn là lỗi tương tự.
Vậy có gì sai?
Tôi cho rằng ứng dụng "được khởi động thủ công" vẫn khó khăn để được đồng bộ hóa với thước đo góc. Bạn có ổn không khi chỉ tắt đồng bộ hóa với 'browser.ignoreSynchronization = true'? – alecxe
Ngoài ra, hãy thử thay thế '$ timeout' bằng' $ interval' bất cứ nơi nào bạn sử dụng nó. Sau đó, khởi động ứng dụng thường xuyên với 'ng-app' được định nghĩa trên' body'. Vẫn còn vấn đề tương tự? – alecxe
@alecxe Yep, như tôi đã nói thay thế bootstrapping thủ công bằng ng-app không thay đổi gì cả. Thay thế $ timeout với $ interval cũng không thay đổi gì cả. ignoreSynchronization = true thực hiện công việc kiểm tra đơn giản này, nhưng tôi không thực sự nghĩ giải pháp của nó, vì từ những gì im đọc trong http://www.protractortest.org/#/timeouts nó được sử dụng cho các trang không có góc cạnh, vì vậy tôi đoán các tính năng thước đo khác sẽ không làm việc với nó .. – Aldarund