javascript – 如何在Protractor中将行数或getText分配给变量
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何在Protractor中将行数或getText分配给变量,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2667字,纯文字阅读大概需要4分钟。
内容图文
![javascript – 如何在Protractor中将行数或getText分配给变量](/upload/InfoBanner/zyjiaocheng/697/19fcef8a36e143e18230b751541dbf50.jpg)
这是我的代码:
describe('SuperCalculator Page', function() {
beforeEach(function(){
browser.get('http://juliemr.github.io/protractor-demo/');
});
it('get rows count and firs column value', function() {
element(by.model('first')).sendKeys(1);
element(by.model('second')).sendKeys(2);
element(by.id('gobutton')).click();
element(by.css('table[class=\'table\']')).all(by.css('tr')).count().then(function(rowCount) {
counttim = rowCount;
console.log(counttim);
});
element(by.css('table[class=\'table\'] > tbody > tr:nth-child(1) > td:nth-child(1)')).getText().then(function(text) {
timeTocheck = text;
console.log(timeTocheck,counttim );
});
});
});
有没有办法在这个结构之外使用timeTocheck和counttim?我想保存价值并在其他地方使用它.
我只是想做一些事情:
var myTime = element(by.css('table[class=\'table\'] > tbody > tr:nth-child(1) > td:nth-child(1)')).getText();
并在myTime中有一个我可以在以后使用的字符串值…
我想对行数做同样的事情.
var rowNumbers = element(by.css('table[class=\'table\']')).all(by.css('tr')).count()
我不想比较它们我想用它们请帮忙…..
解决方法:
实际上,这是像Protractor这样的异步代码的一个真正的问题,也是我经常遇到的问题.问题是所有命令在执行之前都放在命令队列中,因此尝试将gettext()放入变量并稍后使用(例如,检查页面之间的一致性)需要深入理解“之间的差异”.解析时间“和”运行时间.“
你最好的选择是做这样的事情:
describe('SuperCalculator Page', function() {
beforeEach(function(){
browser.get('http://juliemr.github.io/protractor-demo/');
});
it('gets row count and first column value', function() {
// Declare your variables here so they'll be available in lower scopes
var counttim, timeToCheck;
element(by.model('first')).sendKeys(1);
element(by.model('second')).sendKeys(2);
element(by.id('gobutton')).click();
element(by.css('table[class=\'table\']')).all(by.css('tr')).count().then(function(rowCount) {
counttim = rowCount;
console.log(counttim);
})
.then(function() {
element(by.css('table[class=\'table\'] > tbody > tr:nth-child(1) > td:nth-child(1)')).getText().then(function(text) {
timeToCheck = text;
console.log(timeToCheck,counttim );
});
})
.then(function() {
// The rest of your program can go here (as many statements as
// needed), and it can actually use the variables you picked
// up earlier because it's chained to a then() statement, so
// they don't compute until the promises resolve.
//
// Just refer to them by name, like this:
// expect(counttim).toEqual(1);
// expect(timeToCheck).toEqual(3);
});
});
});
这是一种丑陋的做事方式,因为它添加了一层嵌套的括号/圆括号,但它工作正常.如果你以后需要获取更多的变量,只需结束当前的then()并坚持另一个(使用then()语句多次嵌套是不好的做法).
我不是特别喜欢这个解决方案,所以我正在寻找另一个(即使我必须自己编写代码),但是现在这是我发现的最好的.
内容总结
以上是互联网集市为您收集整理的javascript – 如何在Protractor中将行数或getText分配给变量全部内容,希望文章能够帮你解决javascript – 如何在Protractor中将行数或getText分配给变量所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。