Как я могу проверить, активен ли не входящий текстовый элемент в Selenium? (Джава) - PullRequest
2 голосов
/ 24 марта 2019

Я пытаюсь проверить кликабельность не введенного текстового элемента (который можно только просматривать, но не редактировать). У меня есть тест, который, где я хочу утверждать, что текстовый элемент только для просмотра (например, Имя), отображаемый на странице, не может быть нажата

Я пытался использовать метод isEnabled(), чтобы проверить, включен ли текстовый элемент только для просмотра или нет, но утверждение не выполняется правильно.

Это код Bobcat Selenium

Код определения шага:

@Then("^I should verify that the First Name is not clickable$")
    public void iShouldVerifyThatTheFirstNameIsNotClickable() {
        assertEquals("Error: First Name is clickable", true, 
fullName.verifyClick());
}

Код объекта страницы:

public boolean verifyClick() {
        if (firstName.isEnabled()) {
            return true;
        }
        else {
                return false;
        }
}

Ожидаемый результат: поскольку firstName является элементом только для просмотра, результат метода verifyClick() должен быть ложным, поэтому мой результат @Then("^I should verify that the First Name is not clickable$") должен потерпеть неудачу, поскольку утверждение не выполняется.

Фактический результат: @Then("^I should verify that the First Name is not clickable$") результат - успех.

1 Ответ

1 голос
/ 24 марта 2019

Здесь есть часть привязок селена Java, которые могут быть вам полезны здесь.В ExpectedConditions вы найдете функцию с именем elementToBeClickable().Это возвращает логическое значение, равное false, если элемент не активен по какой-либо причине, и значение true, когда он может получить щелчок.Итак, вы просто хотите подождать и посмотреть, возвращает ли эта функция значение true.Selenium справляется и с классом WebDriverWait .

Так что вам нужно будет импортировать оба из них, и тогда вы сможете сделать что-то вроде этого:

//setting the timeout for our wait to be 20 seconds (you can use whatever you want)
WebDriverWait myWaitVar = new WebDriverWait(driver,20); 
try {
    WebElement myElement = myWaitVar.until(ExpectedConditions.elementToBeClickable(firstName)));
    //assert test failed!
}
catch(timeoutException timeout) {
    //whatever you want to do when the element is not clickable
}
...