【发布时间】:2019-12-13 00:12:02
【问题描述】:
当我在 StackOverflow 中搜索时,我得到了多种解决方案来从输入元素中获取值。
我尝试了以下方法
方法一:
return serialNumberTextField.getAttribute('ng-model')
.then((text)=>{return serialNumberTextField.evaluate(text);})
.then((evalText) =>{ console.log("serial number in eval method :"+evalText);
return evalText;})
方法二:
return serialNumberTextField.getAttribute('value')
.then( (text) =>{
console.log("serial number in method :"+text);
return text;})
当在这两种方法中打印时,它会打印出准确的值 例如:- 方法1:评估方法中的序列号:assetDF1534 方法2:方法中的序列号:assetDF1534
我在两个地方使用了返回值
第一名:'assetName'变量是从上面的方法中catch得到序列号的。
assetNameTextField.clear().sendKeys(assetName);
第二名:
element(by.xpath("//a[contains(text(),'"+ assetName+"')]")).click();
首先,它运行良好并在资产名称文本字段中输入值“assetDF1534”,但是使用资产名称创建 Web 元素时失败,因为它将“资产名称”作为承诺而不是值。当我在那些显示为承诺的方法中打印“资产名称”时,如下所示:
要在过滤器中输入的资产名称是 :ManagedPromise::2239 {[[PromiseStatus]]: "fulfilled"} 资产名称是 :ManagedPromise::2239 {[[PromiseStatus]]: "fulfilled"}
Sendkeys 处理了 Promise,因为它是量角器方法,但不是在其他情况下。如何获取价值而不是承诺?
【问题讨论】:
标签: javascript protractor