각도기로 JavaScript를 사용하여 작성한 자동화 된 테스트 스크립트를 실행하려고 할 때마다이 두 함수가 실제로 서로 독립적으로 실행된다는 것을 알 수 있습니다. 예 :각도기 테스트로 JavaScript를 순차적으로 실행하지 않습니다
it("Validation of ND account", function() {
// I logged in, and navigated to the page I need
// And this is where is gets intresting
console.log("\n");
console.log("Before getting number of users");
var numberOfUsers = element(by.xpath('//div[@viewid="userList"]//div[@class="results-count ng-binding"]')).getText().then(function(text) {
console.log(text);
});
console.log("After getting number of users");
// for (i=1, i<numberOfUsers, i++) {
// console.log(i);
// }
});
내가 같은 순서로 내 로그를 얻을 수 있다고 가정 - 이전 번호와 후를하지만, (그것을로드하는 데 시간이 더 걸리기 때문에) 처음에는 다음 각도기를 JS을 얻을합니다. 이 콘솔 출력이 스크립트의 실행 결과입니다 말했다와
Started
[32m.[0m
Before getting number of users
After getting number of users
161
[32m.[0m
2 specs, 0 failures
을, 내 문제는 내가 페이지를 열려면, 요소 텍스트를 얻을 다음에 대한 실행 (그것으로 어떤 작업을 수행 할 것입니다 루프가 주석 처리됩니다), 페이지를로드하기 전에 미해결 된 약속을 반환하기 때문에이 작업을 수행 할 수 없습니다. 좀 더 정확히 말하면 페이지를 열기 전에 페이지가로드되기 바로 전에 페이지의 요소에 따라 루프가 실행됩니다. 요소가 아직 나타나지 않았고 프로그램에 여전히 텍스트 특성이 없으므로 루프가 실패합니다. 그래서 여기에 의문이 있습니다 : 스크립트 시퀀스를 엄격하게 준수하는 것입니다 (JS 명령을 실행하기 전에 분도기 명령을 작성한 후 JS 스크립트가 JS 타임 아웃 또는 대기 함수없이 작성되도록 허용 할 수 있습니까?).
을 내가 뭘 완료. 이제이 문제에 직면하게 될 것입니다. https://stackoverflow.com/questions/48016927/protractor-script-doesnt-work-properly 아마도 같은 이유로 –