通过ng-click(在$state.go
功能中具有ng-click
)上单击按钮元素,操纵up /铬不会转到下一条路线。为什么它停留在相同的路径上并尝试在当前URL上打开视图?
当我点击自己的网站(没有操纵up)时,一切都在真实的网站上运行。
我遇到了错误:
StackTrace未定义并且$ digest已经在进行中
我尝试过:
const startBtn = ".button-selector";
await page.waitFor(startBtn);
await page.click(startBtn);
await page.waitForNavigation();
await page.waitForSelector(".new-selector");
答案 0 :(得分:0)
await
运算符使用未与AngularJS框架及其摘要周期集成的ES6 Promise。
使用$q.when
将承诺转换为AngularJS承诺,并避免使用await
运算符:
const startBtn = ".button-selector";
var p1 = $q.when(page.waitFor(startBtn));
var p2 = p1.then(function() {
return $q.when(page.click(startBtn));
});
var p3 = p2.then(function() {
return $q.when(page.waitForNavigation());
});
var p4 = p3.then(function() {
return $q.when(page.waitForSelector(".new-selector"));
});
return p4;
$q.when方法将可能是值或(第三方)可承诺的对象包装到$q promise中。当您处理的对象可能是或不是承诺时,或者承诺来自无法信任的来源时,这很有用。
AngularJS承诺的.then
方法与AngularJS框架及其摘要周期集成在一起。 AngularJS通过提供自己的事件处理循环来修改常规JavaScript流。这将JavaScript分为经典和AngularJS执行上下文。只有在AngularJS执行上下文中应用的操作才能受益于AngularJS数据绑定,异常处理,属性监视等。