Protractor 单击单选按钮的代码在我的量角器脚本中第二次不起作用

Protractor 单击单选按钮的代码在我的量角器脚本中第二次不起作用,protractor,Protractor,我调用一个函数两次,以执行量角器脚本中的一段代码。下面是第二次调用失败的函数代码的快照。sessionNo是传递给此函数的参数。它可以是0或1。根据此参数的值,将选择索引为0的单选按钮或索引为1的单选按钮 function sessionBegin(sessionNo) { element.all(by.repeater('type in types')).all(by.css ("input[type='radio']")).isPresent(). then(function()

我调用一个函数两次,以执行量角器脚本中的一段代码。下面是第二次调用失败的函数代码的快照。sessionNo是传递给此函数的参数。它可以是0或1。根据此参数的值,将选择索引为0的单选按钮或索引为1的单选按钮

function sessionBegin(sessionNo)
{
    element.all(by.repeater('type in types')).all(by.css ("input[type='radio']")).isPresent(). then(function()
    {
        var sessionType = element.all(by.repeater('type in types')).all(by.css ("input[type='radio']")).get(sessionNo);
        sessionType.click();                                             
    });
}

第一次调用此函数时,此代码非常有效。但是,当第二次使用sessionNo的不同值调用它时,它将失败并出现“Failed:element not visible”错误。我不明白为什么上面的代码第二次找不到相同的元素,就像第一次使用完全相同的代码一样。

这取决于您的应用程序代码,可能是您的元素在找到它和单击操作之间变得不可见,或者它还不可见。对于第一种情况,您应该调查应用程序端发生了什么,对于第二种情况(如果它还不可见),您可以等到它变为可见,例如:browser.wait(EC.visibilityOf(element),5000,
element not visible:${element.locator()}
);
它将等待5秒钟。

谢谢。我已经试过了,但没用。为了使单选按钮可见,我尝试了@alecxe在这里列出的几个建议,但没有任何效果。