使用nodejs中的selenium web驱动程序测试快速更改的方案

时间:2018-01-25 12:07:58

标签: node.js selenium-webdriver jest

我有一个触发休息呼叫的按钮,点击该按钮直到其余呼叫触发我禁用按钮。

我正在使用selenium web driver和nodejs

编写测试用例
button = driver.findElement(By.class("btn"));
await button.click();

console.log(await button.isEnabled()) //outputs true

但我可以看到该按钮被禁用,我确信我选择了正确的按钮findElement语句。

2 个答案:

答案 0 :(得分:0)

.isEnabled()的文档说:

  

该元素目前是否已启用?除了禁用的输入元素之外,这通常会返回true。

所以你所看到的是预期的行为。

要测试您的方案,您需要以下方法:

  1. 点击按钮
  2. 再次点击同一按钮
  3. 你希望失败的第二次点击,所以你必须将它包装在与try..catch相当的node.js中(对不起,我是一个Java人)
  4. 在catch中,将变量设置为true
  5. 之后测试变量已设置

答案 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样式以确定已禁用/已启用。