【问题标题】:Protractor how to wait for options量角器如何等待选项
【发布时间】:2016-02-09 21:06:21
【问题描述】:

我有这样的代码:

        element(by.model("roleSelection.role")).element(by.cssContainingText('option', newRole)).click();//.then(function() {console.log('role click')})//;

通过调用服务器加载选项。

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

   browser.wait(function() {
return browser.isElementPresent(by.model("roleSelection.role")).then(function(present){
    return present;
});}, 8000);

而且它似乎有效。但是我怎么能等到“子元素”是可点击的。 这个我试过了

   browser.wait(function() {
return browser.isElementPresent(by.model("roleSelection.role")).then(function(present){
    if (present) {
        var elm = element(by.model("roleSelection.role"));
        return elm.isElementPresent(by.cssContainingText('option', newRole)).then(function(subpresent) {
            return subpresent;
        });
    }
});   }, 8000);

【问题讨论】:

    标签: protractor


    【解决方案1】:

    你试过可点击吗?类似的东西

    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
    

    【讨论】:

    • 这似乎已经解决了(无论如何大部分时间)。非常感谢。
    【解决方案2】:

    好吧,试试这个:https://angular.github.io/protractor/#/api?view=ExpectedConditions.prototype.elementToBeClickable

    但是,请记住,Protractor 适用于 Angular 网页和交互以及动画。例如 ng-animate。因此,它不确定是否适用于例如 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);
      }
    

    或者您可以在browser.executeScript() 中以脚本方式切换。 请参阅此link。它仅适用于 jquery 动画。

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

    【讨论】:

    • 页面是有角度的,但需要手动引导。此页面是登录后的,然后我选择角色。之后,页面获取“部门”以供选择。现在,当它被提取时,我选择“部门”。
    • 我已经尝试了预期的条件,但它没有工作,甚至不是上面工作的简单版本。消息类似于“无法绑定”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    相关资源
    最近更新 更多