我正在尝试读取量角器中的操作输入.我正试图从量角器中发送一个ajax请求.我需要将一个唯一值(我正在调用groupCode)发送到我想要发送到服务器的
JSON对象的一部分.
所以首先我尝试设置一个可以更新的隐藏输入.我试过了:
<div style='hidden' >
<input
id="group-sendgrid-hidden-input"
ng-model='groupCode'
value='{{groupCode}}'
ng-init='groupCode=dangdangdang'
>
</div>
这也是尝试读取模型值:
<div style='hidden' >
<input
id="group-sendgrid-hidden-input"
ng-model='groupCode'
value='{{groupCode}}'
ng-init='groupCode=dangdangdang'
>
{{groupCode}}
</div>
现在,我可以在Angular控制台中看到此值更新为I除外.意味着$scope.groupCode确实解析为’dangdangdang’.所以我不认为这是问题所在.从这里开始,我希望在量角器测试中读取groupCode字符串,如下所示:
以下是我尝试过的一些内容:
var groupCodeModel = element(by.model('groupCode'));
var groupCodeBinding = element(by.binding('groupCode'));
var placeholder = groupCodeBinding.getText();
也试图以更直接的方式获得价值(我认为)
var groupCode = element(
by.id('group-sendgrid-hidden-input')
).getAttribute('value');
// and then later I want to do this:
var sendgridData = {envelope: 'what', test: groupCode};
问题是,无论我尝试什么,groupCode数据的值似乎永远不会解析为字符串.
>我无法访问console.log(groupCode);
>失败:var sendgridDataString = JSON.stringify(sendgridData);
每次我得到这样的东西:
{ ptor_:
{ controlFlow: [Function],
schedule: [Function],
getSession: [Function],
getCapabilities: [Function],
quit: [Function],
actions: [Function],....
而且我确定我需要的数据就在这里,我对量角器来说太新了.然而,它是dope技术.谢谢.
编辑:
我现在也尝试过:
var groupCode = element(by.id('group-sendgrid-hidden-input')).evaluate('groupCode').then(function(groupCode){
console.log('test: ' + groupCode);
return value;
});
以及 :
var groupCode = element(by.id('group-sendgrid-hidden-input')).getAttribute('value').then(function(groupCode){
console.log('test: ' + value);
return value;
});
在第二个中,groupCode返回:
{ then: [Function: then],
cancel: [Function: cancel],
isPending: [Function: isPending] }
仍然似乎不可能只得到像groupCode =’只是一些单词’的字符串.这是我需要交给另一个功能的.
我知道这一定是可能的,但它让我变得疯狂.我会继续阅读文档.
最佳答案 getAttribute()和许多其他的量角器方法一样返回一个promise,你需要解决它:
element(by.id('group-sendgrid-hidden-input')).getAttribute('value').then(function (value) {
console.log(value);
});
以下是有助于理解承诺概念的相关页面:
> Promises and the Control Flow
> Protractor: How do promises work?
> Asynchronous Testing with Protractor’s ControlFlow
> Julie Ralph End to End Angular Testing with Protractor(一般的量角器介绍)