为什么在 Protractor 中使用 evaluate()?
Why evaluate() in Protractor?
当我 运行 下面的代码片段时,我得到了以下输出。但我仍然不清楚为什么以及何时必须使用 evaluate() ....
browser.get('https://weather.com/en-IN');
$$("input[data-ng-change='goSearch()']").evaluate('placeholderText').then(function(value) {
console.log(value);
});
evaluate()
很少使用,但有一个独特的用途 - 它使您可以 访问您正在使用的当前元素的范围 。当您要查找的值未作为属性或元素的文本在 HTML 中公开时,通常需要这样做。
例如,当您在对象数组上有一个转发器并且您需要访问不在 HTML 中的某个对象 属性 时:
element.all(by.repeater("address in addresses")).filter(function (elm) {
return elm.evaluate("address.zipCode").then(function (zipCode) {
return zipCode === "10801";
});
});
当我 运行 下面的代码片段时,我得到了以下输出。但我仍然不清楚为什么以及何时必须使用 evaluate() ....
browser.get('https://weather.com/en-IN');
$$("input[data-ng-change='goSearch()']").evaluate('placeholderText').then(function(value) {
console.log(value);
});
evaluate()
很少使用,但有一个独特的用途 - 它使您可以 访问您正在使用的当前元素的范围 。当您要查找的值未作为属性或元素的文本在 HTML 中公开时,通常需要这样做。
例如,当您在对象数组上有一个转发器并且您需要访问不在 HTML 中的某个对象 属性 时:
element.all(by.repeater("address in addresses")).filter(function (elm) {
return elm.evaluate("address.zipCode").then(function (zipCode) {
return zipCode === "10801";
});
});