0
我大部分时间都在做这个测试,我已经评论了我所做的事情,但它不起作用。我有能力搜索公司内的用户,然后生成一个表,并且我想选择一个匹配用户名称的表。目前我只使用td.text-center,因为它是表中唯一的td,但这看起来非常糟糕,并且如果系统中有其他具有相同名称的用户,则很容易中断。量角器测试非常缓慢,并且经常超时
尝试2似乎是最好的解决方案,但它总是给元素找不到错误。有没有人找到了在表格中定位TD的可靠方法?下面的方法适用于其它表,只是没有这一个....
this.editUser = function(name) {
// Original Code Block
//browser.actions().mouseMove(element(by.css('td.text-center'))).perform();
//var editUserBtn = element(by.css('.user-action-open'));
//editUserBtn.click().then(function() {
// var editDetails = element(by.cssContainingText('li > a', 'Edit Details'));
// browser.wait(EC.visibilityOf(editDetails), 3000);
// editDetails.click();
//});
// Attempt 2
// browser.actions().mouseMove(element(by.css('td.text-center'))).perform();
//browser.sleep(3000);
//var edit = element.all(by.repeater('user in users')).filter(function(rowElement){
// return rowElement.element.all(by.css('td[ng-bind="user.Firstname"]')).getText().then(function(text){
// return text.trim() == name;
// });
//}).first();
//browser.actions().mouseMove(edit).perform();
// Currently just times out and doesn't find the element.
var editUserButton = $('.user-action-open');
browser.wait(EC.visibilityOf(editUserButton), 20000).then(function() {
editUserButton.click().then(function() {
var editDetails = element(by.cssContainingText('li > a', 'Edit Details'));
browser.wait(EC.visibilityOf(editDetails), 3000);
editDetails.click();
});
});
}
,看起来不错,我想我试图做的主要事情是去除browser.actions.mouseMove到行盘旋,并用环路滤波器更换只需找到该行并点击它,不管出于什么原因,我似乎都无法做到这一点,所以会尝试这种方法 – theHussle
如果你只是想点击一个对象,只要确保它可以点击。任意超时并不理想。另外,我不确定为什么有鼠标移动。我认为这与在“td.text-center''上悬停后出现的菜单有关。另一个缺少的是点击行动,如果你打算点击它。 – cnishina
是的,它不是一个理想的设计,但必须与之合作。基本上它会生成一个表,当td悬停时出现一个编辑该特定行的按钮,因此显示的代码会让该行显示,但是我觉得这个设置很容易中断,因为它依赖于搜索返回一个td行。 – theHussle