Как проверить, есть ли у dom класс, использующий WebDriver (Selenium 2)? - PullRequest
22 голосов
/ 23 ноября 2011

Я очень новичок в Selenium, поэтому приношу свои извинения, если это глупый вопрос. Я успешно соединил IntelliJ (Play! Framework) с Selenium и создал несколько тестов с использованием firefoxDrivers.

Я пытаюсь проверить правильность проверки страницы.

Короче говоря, я выбираю такой элемент:

WebElement smallDecel = firefoxDriver.findElement(By.cssSelector("#configTable tr:nth-child(2) td .playerDecelInput"));

Я делаю некоторые дальнейшие операции (очищаю и изменяю значение, отправляю «форму»), а затем хочу проверить, был ли указан TD, в котором находится вход, другой класс.

Итак, вопрос в том - существует ли простая техника, которую я могу использовать, чтобы выяснить, есть ли в WebElement / DOM определенный класс?

Ответы [ 3 ]

29 голосов
/ 25 апреля 2013

Чтобы расширить ответ Сэма Вудса, я использую простой метод расширения (это для C #), чтобы проверить, имеет ли элемент указанный класс:

public static bool HasClass( this IWebElement el, string className ) {
    return el.GetAttribute( "class" ).Split( ' ' ).Contains( className );
}
25 голосов
/ 24 ноября 2011

Как только вы найдете элемент, вы можете просто вызвать myElement.GetAttribute ("class"). Затем вы можете проанализировать возвращаемую строку и посмотреть, содержит ли она или нет имя класса, которое вам небезразлично.

7 голосов
/ 23 ноября 2011

Вы можете использовать FindElement(By.ClassName(//name of your class));. Я бы порекомендовал вам либо пройти по циклу и искать в DOM в течение заданного периода времени, либо установить Thread.sleep (xxxx), а затем искать добавленный класс.

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