以字符串形式读取量角器测试中的更新输入
Reading an updated input in a protractor test as a string
我正在尝试读取量角器中操作的输入。我正在尝试从量角器中发送一个ajax请求。我需要向要发送到服务器的JSON对象的一部分发送一个唯一值(我称之为groupCode
)。
因此,首先我尝试设置一个可以更新的隐藏输入。我试过:
<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
确实决心"当当"。所以我不认为这是问题所在。从这里开始,我希望在量角器测试中读取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],....
我确信我需要的数据在这里,我只是对量角器太陌生了,无法计算出来。然而,这是毒品技术。非常感谢。
编辑:
我现在也尝试过:
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 = 'just some words'
这样的字符串似乎仍然是不可能的。这是我需要交给另一个函数的。
我知道这一定是可能的,但这让我抓狂。我将继续阅读这些文档。
getAttribute()
与许多其他量角器方法返回promise一样,您需要解析它:
element(by.id('group-sendgrid-hidden-input')).getAttribute('value').then(function (value) {
console.log(value);
});
以下是有助于理解承诺概念的相关页面:
- 承诺与控制流程
- 预言家:承诺是如何运作的
- 使用Protractor的ControlFlow进行异步测试
- Julie Ralph使用量角器进行端到端角度测试(通常是量角器的伟大介绍)
我们进一步讨论了这个问题,并在这里回答了我提出的关于实现此处列出的解决方案的另一个问题中的原始问题,该解决方案几乎是完整的,并且完成了我必须在it
测试中编写的预期条件。
无法从量角器测试中元素的值返回字符串
相关文章:
- 使用Javascript更新输入框中的文本
- 以字符串形式读取量角器测试中的更新输入
- 如何动态更新输入值属性
- 当html选择/选项发生更改时,需要更新输入字段
- 用于更新输入的 Javascript 被占位符覆盖
- 更新输入类型=文本值或文本框控件调整大小事件
- AngularJS绑定模型以选择更新输入数字字段,最小值为最大值
- 从数据库填充的下拉菜单中更新输入字段
- 如何在拖动行时更新输入值
- 为什么在更新输入类型文本的值时,敲除不更改值属性
- 使用javascript将span更改为input(viceversa),然后AJAX更新输入
- 按键更新输入落后1步
- NG模型仅在使用谷歌地图自动完成时单击后更新输入
- Javascript更新输入字段(将光标放在输入中)
- 更新输入类型时间的值(重新渲染)并使用 React 再次关注元素
- Twitter TypeAhead.js不更新输入
- 主干更新输入创建新行
- 使用 href Jquery 的值更新输入
- 获取 IFrame 源,然后更新输入文本框
- 自动建议反应.js组件不会在渲染时更新输入样式