我有一个触发休息呼叫的按钮,点击该按钮直到其余呼叫触发我禁用按钮。
我正在使用selenium web driver和nodejs
编写测试用例button = driver.findElement(By.class("btn"));
await button.click();
console.log(await button.isEnabled()) //outputs true
但我可以看到该按钮被禁用,我确信我选择了正确的按钮findElement语句。
答案 0 :(得分:0)
.isEnabled()
的文档说:
该元素目前是否已启用?除了禁用的输入元素之外,这通常会返回true。
所以你所看到的是预期的行为。
要测试您的方案,您需要以下方法:
try..catch
相当的node.js中(对不起,我是一个Java人)true
答案 1 :(得分:0)
您描述的方案是单击按钮,验证它是否已禁用,然后验证它是否已启用。可能有几种方法可以做到这一点。我正在查看the documentation,这是一种方式:
button = driver.findElement(By.class("btn"));
button.click();
driver.wait(until.elementIsDisabled(button));
driver.wait(until.elementIsEnabled(button));
如果按钮永远不会被禁用,则会抛出异常。如果按钮永远不会重新启用,则会抛出异常。因此,失败条件是抛出异常。通过条件也不例外。
注意:在Selenium术语中,禁用和启用通常是指INPUT
标记。如果您的按钮不是INPUT
标记,那么这不会起作用。您需要检测一些应用/删除的CSS样式以确定已禁用/已启用。