Как проверить, имеет ли dom класс с помощью WebDriver (Selenium 2)?
Я очень новичок в Selenium, поэтому извиняюсь, если это глупый вопрос.
Я успешно подключил IntelliJ (Play! Framework) с Selenium и создал несколько тестов с использованием firefoxDrivers.
Я пытаюсь проверить правильность проверки страницы.
Короче говоря, я выбираю такой элемент:
WebElement smallDecel = firefoxDriver.findElement(By.cssSelector("#configTable tr:nth-child(2) td .playerDecelInput"));
Я делаю некоторые дальнейшие операции (очищаю и изменяю значение, отправляю "форму" ), а затем я хочу проверить, был ли TD, вход которого находится, был присвоен другой класс.
Итак, вопрос в том, есть ли простой метод, который я могу использовать, чтобы выяснить, имеет ли класс WebElement/DOM указанный класс?
Ответы
Ответ 1
Вы можете использовать FindElement(By.ClassName(//name of your class));
Я бы порекомендовал вам либо выполнить цикл, либо выполнить поиск в DOM в течение заданного периода времени, либо установить Thread.sleep(xxxx), а затем искать добавленный класс.
Ответ 2
Как только вы найдете этот элемент, вы можете просто вызвать myElement.GetAttribute( "класс" ). Затем вы можете проанализировать возвращаемую строку и посмотреть, содержит ли она или не содержит имя класса, о котором вы заботитесь.
Ответ 3
Чтобы расширить ответ Сэма Вудса, я использую простой метод расширения (это для С#), чтобы проверить, имеет ли элемент определенный класс:
public static bool HasClass( this IWebElement el, string className ) {
return el.GetAttribute( "class" ).Split( ' ' ).Contains( className );
}