Protractor 量角器如何等待选项

Protractor 量角器如何等待选项,protractor,Protractor,我有这样的代码: element(by.model(“roleSelection.role”)).element(by.cssContainingText('option',newRole))。单击()。然后(function(){console.log('role click')})/; 通过调用服务器加载选项 我可以通过这样做来等待第一个元素 browser.wait(函数(){ 返回browser.isElementPresent(by.model(“roleSelection.role

我有这样的代码:

element(by.model(“roleSelection.role”)).element(by.cssContainingText('option',newRole))。单击()。然后(function(){console.log('role click')})/;
通过调用服务器加载选项

我可以通过这样做来等待第一个元素

browser.wait(函数(){
返回browser.isElementPresent(by.model(“roleSelection.role”))。然后返回(function(present){
归还礼物;
});}, 8000);
这似乎奏效了。但是我怎么能等到“子元素”可以点击呢。 我试过这个

browser.wait(函数(){
返回browser.isElementPresent(by.model(“roleSelection.role”))。然后返回(function(present){
如果(出席){
var elm=元素(按.model(“roleSelection.role”);
返回elm.isElementPresent(by.cssContainingText('option',newRole))。然后返回(函数(subpresent){
返回子当前;
});
}
});   }, 8000);
好吧,试试这个:

但是,请记住,量角器适用于有角度的网页、交互和动画。例如,制作动画。因此,例如jquery或其他动画,它不一定能正常工作

这样:

 onPrepare: function () {
    // disable animations when testing to speed things up
    var disableNgAnimate = function () {
      angular.module('disableNgAnimate', []).run(function ($animate) {
        $animate.enabled(false);
      });
    };
    browser.addMockModule('disableNgAnimate', disableNgAnimate);
  }
或者您可以在
浏览器中以脚本方式切换。executeScript()
。 请看这个。它只适用于jquery动画

如果没有动画问题。使用
setTimeout()
JS函数。

好吧,尝试以下方法:

但是,请记住,量角器适用于有角度的网页、交互和动画。例如,制作动画。因此,例如jquery或其他动画,它不一定能正常工作

这样:

 onPrepare: function () {
    // disable animations when testing to speed things up
    var disableNgAnimate = function () {
      angular.module('disableNgAnimate', []).run(function ($animate) {
        $animate.enabled(false);
      });
    };
    browser.addMockModule('disableNgAnimate', disableNgAnimate);
  }
或者您可以在
浏览器中以脚本方式切换。executeScript()
。 请看这个。它只适用于jquery动画


如果没有动画问题。使用
setTimeout()
JS函数。

您尝试过clickable吗?类似这样的东西

var EC = protractor.ExpectedConditions;
var select = element(by.model("roleSelection.role"))
var isClickable = EC.elementToBeClickable(select);
browser.wait(isClickable,5000); //now options should have been loaded by now

你试过clickable吗?类似这样的东西

var EC = protractor.ExpectedConditions;
var select = element(by.model("roleSelection.role"))
var isClickable = EC.elementToBeClickable(select);
browser.wait(isClickable,5000); //now options should have been loaded by now

页面有角度,但有手动引导。此页面在登录后显示,然后我选择角色。之后,页面将获取要从中选择的“部门”。现在,当获取该文件时,我选择了“department”。我尝试了expectedconditions,但它不起作用,甚至上面的简单版本也不起作用。消息类似于“无法绑定”。页面有角度,但带有手动引导。此页面在登录后显示,然后我选择角色。之后,页面将获取要从中选择的“部门”。现在,当获取该文件时,我选择了“department”。我尝试了expectedconditions,但它不起作用,甚至上面的简单版本也不起作用。消息类似于“无法绑定”。这似乎解决了它(无论如何,大多数情况下)。非常感谢。这似乎已经解决了它(无论如何,大多数时候)。非常感谢。