angularjs - Protractor - 选择当前元素的下一个兄弟

标签 angularjs protractor

在我的代码中有一个使用“protractor.By.repeater”选择的元素列表(tr)。
该列表使用“forEach”循环。

在这个循环中,元素被点击,这个点击应该在被点击的元素之后触发包含一个新的“tr”。

我想选择那条新线。

我用了 :

var nextRow = tr.$(protractor.By.xpath('following-sibling::tr'));

但随后:
                nextRow.isDisplayed(function(row){
                    console.log('row', row);
                });

它会生成错误,例如:“UnknownError:java.util.HashMap 无法转换为 java.lang.String”

有没有另一种方法来实现我想要的,即选择当前元素的下一个兄弟?

或者我在那里写了不正确的东西?

谢谢你的帮助!

最佳答案

看起来您缺少一个 .then那里并误解了什么 isDisplayed做。

代码应该更像:

nextRow.isDisplayed().then(function(visible) {
  console.log('is displayed? ', visible);
});

还有您的 ElementFinder nextRow看起来不太好,什么是变量tr以下?和 Protractor $element(by.css 的别名在您的代码中,它采用字符串参数,而不是像您在下面解释的 webdriver.Locator :
var nextRow = tr.$(protractor.By.xpath('following-sibling::tr'));

所以也许你的意思是:
var tr = $('table tr.first'); // just guessing here since you didn't provide that code
var nextRow = tr.element(By.xpath('following-sibling::tr'));

关于angularjs - Protractor - 选择当前元素的下一个兄弟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25390171/

相关文章:

javascript - 如何在for循环中循环 promise 并在满足条件时中断

javascript - Protractor 很难点击弹出/下拉菜单

javascript - 当 <base> 标签包含在 HTML head 中时,FusionCharts 无法正确呈现

javascript - AngularJs - forEach 范围数组 - 不工作

javascript - Kendo 编辑器 -thumbnailUrl 的功能不起作用

angular - 通过 Protractor 在 ion-textarea 中发送输入 - ionic 4

unit-testing - Angularjs - 如何用模拟正确替换服务依赖

javascript - ng-change 不适用于选择输入

internet-explorer - 在多个版本的 IE 中运行 Protractor e2e 测试

node.js - 如何使用 "ng e2e"对 Node 服务器而不是 webpack-dev-server 运行 Protractor 测试