2015-09-24 3 views
2

В настоящее время я пишу тест, и мне было интересно, есть ли способ утверждать, что текстовое поле пуст.Утверждение, что текстовое поле пуста в Selenium

Тест предназначен для команды выхода из системы, которая «очищает данные» вместо сохранения имени или имени пользователя. То, как я смоделировал этот тест, имеет вход в тестовый журнал, выход из системы и ту часть, на которую я застрял, - утверждая, что текстовое поле электронной почты на экране входа в систему пуст после выхода из системы.

Я попытался вещи, как это:

if (driver.findElement(By.cssSelector("input[type=\"text\"]").equals(""))) { 
    // This will throw an exception 
} 

Но это не работает, потому что аргументы не принимаются.

Любые идеи?

ответ

2

Я думаю, что вам нужно, чтобы получить атрибут value:

WebElement myInput = driver.findElement(By.cssSelector("input[type=\"text\"]")); 

if (!myInput.getAttribute("value").equals("")) { 
    fail() 
} 
2

Предыдущий ответ работает, но утверждение может быть намного чище. Утверждения всегда должны давать какое-то разумное сообщение. Вот пример использования JUnit assertThat и совпадений hamcrest.

import org.junit.Assert; 
import static org.hamcrest.Matchers.isEmptyString; 
... 
WebElement myInput = driver.findElement(By.cssSelector("input[type=\"text\"]")); 
Assert.assertThat(myInput.getAttribute("value"), isEmptyString()); 

Или еще лучше, дать сообщение Причина:

Assert.assertThat("Field should be empty", myInput.getAttribute("value"), isEmptyString()); 
Смежные вопросы