Как выбрать локатор для флажков - PullRequest
0 голосов
/ 01 июня 2018

Здесь я должен установить флажок, используя selenium, и я не могу его установить.У него есть только одна опция имени класса, которую я использую, но появляется ошибка:

org.openqa.selenium.NoSuchElementException: нет такого элемента: Невозможно найти элемент: {"method": "classимя "," селектор ":" 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 голосов
/ 01 июня 2018

Итак, я понял из вашего кода, что кажется, что флажок showpassword и флажок keepsignin имеют одно и то же имя класса.Это означает, что как минимум 2 элемента имеют имя класса um-icon-android-checkbox-outline, поэтому, когда вы используете driver.findElement, драйвер не знает, какой именно.В этом случае вы должны использовать 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

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...