量角器if(checkbox.isSelected())bug?

Lev*_* F. 1 javascript checkbox selenium webdriver protractor

给出以下代码:

if (element(by.name("checkbox")).isSelected()) {
    element(by.name("checkbox")).click();
}
Run Code Online (Sandbox Code Playgroud)

它总是点击复选框,无论它是否先前被选中,它就像它返回什么并不重要.我也试过了

if (element(by.name("checkbox")).isSelected() == true) {
    element(by.name("checkbox")).click();
}
Run Code Online (Sandbox Code Playgroud)

相同的结果.

但是,当我把代码放在预期中时,它就像一个魅力... ex:

expect(element(by.name("checkbox")).isSelected().toBe(true));
Run Code Online (Sandbox Code Playgroud)

如果选择了,则给出正确的答案.

这是Protractor的错误还是我在这里做错了什么?

PS:我试图在selenium webdriver junit中运行类似的代码,它的工作原理.

aby*_*byx 5

isSelected()返回一个承诺.你需要等待它完成:

element(by.name('checkbox')).isSelected().then(function(selected) {
    if (selected) {
        element(by.name('checkbox')).click();
    }
});
Run Code Online (Sandbox Code Playgroud)