我正在使用以下方法来验证表格所有页面中的某些表格数据。我已经尝试了所有的可能性,任何人都可以分享您对此的看法。
下面的代码是我的页面,
this.isApplicationPresentUsingName = function (name) {
return this.pgnumCount.count().then(function(num){
if (num > 0) {
console.log(num);
for (var i = 0; i < num; i++) {
return this.pgnumCount.filter(function(pg){
pg.getText().then(function(text){
return text.toString()===i.toString();
}).then(function(number){
number.click();
}).then(function(){
this.checkApplication(name).then(function (found) {
console.log("Text1");
return found.length > 0;});
});
});
}
} else {
console.log('Pagination not exists');
}
});
});
this . check application = function(text){ return element . all(by . CSS containing text(" # application-auth-list-2 tbody tr TD:first-child ",text));};
这个.pgnum计数=$$('a.ui-分页器-页面');
我在我的规范中这样称呼它,
expect(app auth . isaapplicationpresentusingname(application name))。toBeFalsy();
我面临以下问题,
失败:无法读取未定义的属性“filter”
但是我可以在控制台中找到与3完全匹配的页码。
请帮帮忙
首先,我将解释如何执行您的代码。
this.isApplicationPresentUsingName = function (name) {
return this.pgnumCount.count().then(function (num) {
//You will get the total number of pages
if (num > 0) {
console.log(num);
for (var i = 0; i < num; i++) {
//below statement will throw an error because
// `this` refers to current function scope.
return this.pgnumCount.filter(function (pg) {
// return statement is missing.
// so the filter wont work
pg.getText().then(function (text) {
// value of i will always equals to num
// because this code will be executed asynchronously
// you need to use `closure` to get correct value of i
return text.toString() === i.toString();
}).then(function (number) {
number.click();
}).then(function () {
this.checkApplication(name).then(function (found) {
console.log("Text1");
return found.length > 0;
});
});
});
}
} else {
console.log('Pagination not exists');
}
});
}
所以你的实际代码应该看起来像,
this.isApplicationPresentUsingName = function (name) {
//save the reference of `this` to a local variable.
var self = this;
function recursiveSearch(currentPage, totalPage) {
if (currentPage < totalPage) {
//if current page is less total page
// click the current page number
self.pgnumCount.get(currentPage).click();
// check if name is present in current page
return self.checkApplication(name).then(function (found) {
//if name is present in current page, return true.
if (found) {
return true;
} else {
//if name is not present in current page,
// we need to again click next page and check if it is present
return recursiveSearch(index + 1, totalPage)
}
});
} else {
//after checking for the name in all pages
// return false because the name is not present in any of the page.
return false;
}
}
//get the total page number and recursively check if the name is present in each page.
return this.pgnumCount.count().then(function (totalCount) {
//start with page 0 till total number of pages
return recursiveSearch(0, totalCount);
});
};
希望这能有所帮助。
我已经编写了Python 3脚本,它使用硒从公鸡资源的IFrame中的表中提取数据。此表包含2018年MLB时间表。 但是,在执行脚本时,我收到以下错误: 当它到达脚本中包含的行时。为什么会这样? 顺便说一句,如果你浏览上面的链接,你可以看到包含不同颜色徽标和文本的表格 仅供参考,我不希望在该iframe内恢复链接;相反,我想切换到它来获取数据。
问题内容: 我在Angular UI Grid中有一个项目列表。当我单击一行时,我想转到另一个页面。(换句话说,网格中的每一行都是一个链接。) 我想这肯定是一个非常普遍的愿望,尽管我还没有真正看到过有关如何实现的文档。什么是完成此任务的好方法? 问题答案: 我自己想出了答案。这是我的控制器(ES6): 这是我的行模板(Jade): 另外,这是我的样式表(SCSS)。我认为突出显示光标下的行并使用光
从这里下载selenium-server-4.0.0.jar之后 我将这个jar文件放在c文件夹中,然后使用cmd命令尝试使用这个命令启动selenium grid hub 我无法运行selenium网格中心,它显示以下内容 我试着把这个网址放在chrome浏览器中 然后它显示这个
我有剑道网格和自定义搜索表单。在我的搜索表单中,我有提交和重置按钮。如果有搜索内容,那么网格将使用搜索的过滤器数据源进行更新,然后单击“重置”,网格将使用新数据源进行刷新。如果我将pagesize值10更改为20并单击“重置网格”,我的问题是没有重置。。然后网格页面大小变为20到10。。。如果单击“下一页”,则第二页的页面大小保持为20,第一页的页面大小保持为10 我怎么解决这个问题?任何想法?我
单击包含< code>VerticalLayout行等组件的Vaadin 8 中的单元格时,不会选中该行(使用Vaadin 8.1.5)。 如果组件未填充整个单元格,则单击单元格中未使用的区域会使该行处于选中状态。 我一直在研究如何将点击组件转发到单元格点击侦听器,但尚未对此有任何控制。猜猜这甚至不是最好的方法。 解决方案是什么?
下面是我的代码,我正在使用它来传递浏览器、节点和枢纽港来启动浏览器并执行测试,但是我得到了异常,尽管我能够设置selenium服务器。我把错误贴在代码下面。我使用mac book、Selenium3.4、Firefox55和Gecko0.18.0 下面是命令提示符中的日志