【问题标题】:Why evaluate() in Protractor?为什么在量角器中评估()?
【发布时间】:2017-02-04 23:21:24
【问题描述】:

当我运行下面的 sn-p 时,我得到了以下输出。但我仍然不清楚为什么以及何时必须使用 evaluate() ....

    browser.get('https://weather.com/en-IN');

    $$("input[data-ng-change='goSearch()']").evaluate('placeholderText').then(function(value) {
        console.log(value);
      });

【问题讨论】:

  • evaluate()方法用于获取控制器内部任意$scope变量的值。

标签: selenium selenium-webdriver protractor angularjs-e2e


【解决方案1】:

evaluate() 很少使用,但有一个独特的用途 - 它使您可以访问您正在使用的当前元素的范围。当您要查找的值未在 HTML 中作为属性或元素的文本公开时,通常需要这样做。

例如,当您在对象数组上有一个中继器并且您需要访问一些不在 HTML 中的对象属性时:

element.all(by.repeater("address in addresses")).filter(function (elm) {
     return elm.evaluate("address.zipCode").then(function (zipCode) {
          return zipCode === "10801";
     });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-19
    • 2019-05-24
    • 2015-03-15
    • 2013-09-02
    • 2013-11-11
    • 1970-01-01
    相关资源
    最近更新 更多