我正在对一个应用程序进行自动化测试,我正面临一个方案来验证是否使用自动化代码检查复选框
我的网络应用程序是使用角度js开发的,开发人员使用了Checked属性
我试过.isselected但它不适合我。
答案 0 :(得分:0)
如果您想验证是否选中了复选框,请注意,如果选中了复选框,则任何带有复选框的输入标签都会显示隐藏的属性值,其值为= True如果没有那么它的值是= null,因此在此基础上你可以很容易地识别哪个Check-box被选中。下面找到一个相同的工作示例:
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get("C:\\Users\\rajnish\\Desktop\\myCheckox.html");
// working with check boxes
// first take all the check boxes inside a list like below
List<WebElement> mycheckBox = driver.findElements(By.xpath("//*[@type='checkbox']"));
// apply the for loop to identify/ verify if a check boxes is selected or not
for(int i=0;i<mycheckBox.size();i++){
System.out.println("attribut value Selected of Check-box is : " + mycheckBox .get(i).getAttribute("selected"));
// if Check-box is selected then value of selected attribute is True else null
if( mycheckBox.get(i).getAttribute("selected").equals("null")){
// if loop will only run when value of selected attribute is null
// i.e only when Check-box is not selected
mycheckBox .get(i).click();
}
}
答案 1 :(得分:0)
使用已选择功能
WebElement el = driver.findElement(By.id("element Id"));
el.click()
el.isSelected()
答案 2 :(得分:0)
您可以使用包含&#34; .ng-not-empty&#34;的选择器。或者&#34; ng-empty&#34;类:
List<WebElement> eltsUnchecked = driver.findElements(By.cssSelector("input[ng-model='checkboxModel.value1'].ng-empty"));
bool isNotCheched = eltsUnchecked.size() > 0;
if (isNotCheched) {
// check the checkbox
eltsUnchecked.get(0).click();
}
List<WebElement> eltsChecked = driver.findElements(By.cssSelector("input[ng-model='checkboxModel.value1'].ng-not-empty"));
bool isCheched = eltsChecked.size() > 0;
if (isCheched) {
// uncheck the checkbox
eltsChecked.get(0).click();
}
或通过检查&#34; .ng-not-empty&#34;的存在或者&#34; ng-empty&#34;在class属性中:
WebElement checkbox = driver.findElement(By.cssSelector("input[ng-model='checkboxModel.value1']"));
bool isCheched = checkbox.getAttribute("class").contains("ng-not-empty");
bool isNotChecked = checkbox.getAttribute("class").contains("ng-empty");
if (isCheched) {
// uncheck the checkbox
checkbox.click();
} else if (isNotChecked) {
// check the checkbox
checkbox.click();
}
但是,如果您使用&#34;已检查&#34;然后改为属性:
WebElement checkbox = driver.findElement(By.cssSelector("input[ng-model='checkboxModel.value1']"));
bool isCheched = checkbox.getAttribute("checked").length > 0;
bool isNotChecked = checkbox.getAttribute("checked").length == 0;
答案 3 :(得分:0)
使用isSelected代替下面的代码所示的isselected。
Assert.assertEquals(wd.findElement(By.[your element locater])).isSelected(),true);
我已经在我的代码中成功使用了它,并且可以正常工作。如下:
Assert.assertEquals(wd.findElement(By.xpath("//input[@id='chkremember']")).isSelected(),true);