自动化状态复选框以验证活动/非活动

Posted

技术标签:

【中文标题】自动化状态复选框以验证活动/非活动【英文标题】:Automate status checkbox to verify active/inactive 【发布时间】:2021-11-10 14:24:06 【问题描述】:

我希望自动化一个场景,在数据网格中,我有一个用户状态复选框,无论用户是否处于活动状态,现在我正在做的是:

1. 在 Grid 上创建一个复选框列表,如果大小 > 0 则我 gettext() 的第一条记录在网格中并将其存储在字符串变量中。

2. 在搜索框中发送字符串变量的数据并出现用户,现在我单击复选框,如果它处于非活动状态则变为活动状态,反之亦然。

现在我想验证复选框是否被选中/单击以及单击时状态是否发生变化,但不知道如何验证它,活动变为非活动,反之亦然。

有人可以建议我如何处理这种情况吗?

<input type="checkbox" class="custom-control-input" onclick="activeChange(this)" id="chkIsActive_6" checked="checked">

选中复选框或用户处于“活动状态”时

<input type="checkbox" class="custom-control-input" onclick="activeChange(this)" id="chkIsActive_6">

当复选框未选中或用户处于“非活动状态”时

【问题讨论】:

活动变为不活动时会发生什么?我们可以为这两种情况提供 html 吗? 用 HTML 更新了问题 好吧,当 HTML DOM 中的任何一个被触发时,它们肯定会有所不同。 有,checked属性不勾选时不可用。因此,至少在该特定元素中可以看到这种变化。 好吧,如果检查用户处于活动状态,则有一列状态,如果不是,则用户处于非活动状态,希望这是您所要求的。 【参考方案1】:

ActiveInactive 元素之间有不同的属性。

其实你可以用.getAttribute("checked")实现,看下面的方法:

//get current element
WebElement elementBefore = driver.findElement(By.id("chkIsActive_6"));
String before = elementBefore.getAttribute("checked");

//do something here to make the element change, maybe click event
...

//ideally insert a wait here
...

//get element after action
WebElement elementAfter = driver.findElement(By.id("chkIsActive_6"));
String after = elementAfter.getAttribute("checked");

//verify
if(!after.equals(before)) 
    //successfully changed

【讨论】:

绝对天才!这就是我要找的东西,非常感谢!【参考方案2】:

尝试使用 isSelected() 方法:

isChecked = webElement.findElement(By.id("chkIsActive_6")).isSelected();

【讨论】:

这不会让我知道活动是否变为非活动或反之亦然,我的动机不是验证复选框是否被选中,我想验证它是否被取消 -在开始时选择然后 onClick 它被选中,反之亦然

以上是关于自动化状态复选框以验证活动/非活动的主要内容,如果未能解决你的问题,请参考以下文章

优胜美地文件共享非活动帐户[关闭]

Angular 5,具有 3 种状态的 Angular 材质复选框(选中、未选中、不确定)

如何在反应表中使用另一个不确定的复选框列

如何使复选框确定是否应显示活动

Spring Boot + Thymeleaf 动态表,行中带有复选框与控制器通信

如何使用选择选项同步 antd 多选表复选框状态