自动化状态复选框以验证活动/非活动
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】:Active 和 Inactive 元素之间有不同的属性。
其实你可以用.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 材质复选框(选中、未选中、不确定)