量角器 if (checkbox.isSelected()) 错误?
Protractor if (checkbox.isSelected()) bug?
给定以下代码:
if (element(by.name("checkbox")).isSelected()) {
element(by.name("checkbox")).click();
}
无论之前是否选中它,它总是点击复选框,就像它无关紧要一样returns。我也试过
if (element(by.name("checkbox")).isSelected() == true) {
element(by.name("checkbox")).click();
}
相同的结果。
但是当我把代码放在预期中时,它就像一个魅力...例如:
expect(element(by.name("checkbox")).isSelected().toBe(true));
给出正确答案,是否被选中。
这是 Protractor 的 bug 还是我做错了什么?
PS:我已经尝试 运行 selenium webdriver junit 中的类似代码,并且有效。
isSelected()
returns一个承诺。您需要等待它完成:
element(by.name('checkbox')).isSelected().then(function(selected) {
if (selected) {
element(by.name('checkbox')).click();
}
});
给定以下代码:
if (element(by.name("checkbox")).isSelected()) {
element(by.name("checkbox")).click();
}
无论之前是否选中它,它总是点击复选框,就像它无关紧要一样returns。我也试过
if (element(by.name("checkbox")).isSelected() == true) {
element(by.name("checkbox")).click();
}
相同的结果。
但是当我把代码放在预期中时,它就像一个魅力...例如:
expect(element(by.name("checkbox")).isSelected().toBe(true));
给出正确答案,是否被选中。
这是 Protractor 的 bug 还是我做错了什么?
PS:我已经尝试 运行 selenium webdriver junit 中的类似代码,并且有效。
isSelected()
returns一个承诺。您需要等待它完成:
element(by.name('checkbox')).isSelected().then(function(selected) {
if (selected) {
element(by.name('checkbox')).click();
}
});