如何选中复选框的定位器

时间:2018-06-01 07:18:07

标签: selenium checkbox path testng

在这里,我必须使用selenium选中该复选框,我无法选择它。它只有一个我正在使用的类名选项,但出现错误:

  

org.openqa.selenium.NoSuchElementException:没有这样的元素:无法找到元素:{"方法":"类名","选择器":& #34; um-icon-android-checkbox-outline"}

@Test
public void validemail()
{
    WebElement email=driver.findElement(By.id("username-15"));
    email.clear();
    email.sendKeys("ceicateviewer");

    WebElement password=driver.findElement(By.id("user_password-15"));
    password.clear();
    password.sendKeys("1256Aa");

    WebElement showpassword=driver.findElement(By.className("um-icon-android-checkbox-outline"));
    showpassword.click();

    WebElement keepsignin=driver.findElement(By.className("um-icon-android-checkbox-outline"));
    keepsignin.click();


    /*WebElement login=driver.findElement(By.className("um-button"));
    login.click();*/
}

1 个答案:

答案 0 :(得分:0)

因此,我从您的代码中得知,复选框showpassword和复选框keepsignin似乎具有相同的类名。这意味着,至少有2个元素具有类名um-icon-android-checkbox-outline,这就是为什么当您使用driver.findElement时,驱动程序并不知道哪一个。{1}}。在这种情况下,您必须使用driver.findElements。你可以试试这个:

List<WebElement> checkboxes = driver.findElements(By.className("um-icon-android-checkbox-outline"));
// assuming there are only 2 elements have this classname, and in this order
checkboxes.get(0).click();  // click on showpassword
checkboxes.get(1).click();  // click on keepsignin

希望它有所帮助。