Как получить динамически генерируемое имя класса?

78
7

Я хочу проверить, что мой стиль страницы в определенном формате или нет, как фотоцентр, миниатюры и т.д. Например, если я выбрал свою страницу для отображения, как в формате миниатюр. Сначала я выбрал стиль шаблона, а затем мне нужно чтобы утверждать, что страница находится в стиле миниатюр или нет. Она динамически генерирует идентификатор и имя класса. Как я могу получить динамически сгенерированный классName.My-код выглядит следующим образом

//Click Thumbnails
pubDriver.findElement(By.cssSelector("img[alt=Template-option-thumbnails]")).click();
pubDriver.findElement(By.id("saveForm")).click();

//Check if the Page has been in thumbnail style template
WebElement thumbnailStyle = wait.until(ExpectedConditions.presenceOfElementLocated(By.className("thumbnails")));
Assert.assertTrue(thumbnailStyle.isDisplayed());
sleep(1000);

Если я дам выше кодировку для утверждения, он выдает следующее сообщение об ошибке. Потому что я раньше применял формат шаблона стиля, а затем я получил className.

Задержка после 10 секунд ожидания присутствия элемента, расположенного по: By.className: thumbnails

После применения формата стиля шаблона я получаю следующие вещи, поэтому я не знаю, как динамически grave className отсюда

    <div ng-class="layout" ng-switch-default="" class="ng-scope thumbnails">
<div ng-switch="" on="layout">

<!-- thumbnails template -->

спросил(а) 2021-01-19T17:52:28+03:00 6 месяцев, 2 недели назад
1
Решение
134

У вас есть другие постоянные параметры элемента, который вы пытаетесь извлечь?

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

WebElement item = By(//some selector);
String itemClass = item.getAttribute("class");
//assert that class contains thumbnails

ответил(а) 2021-01-19T17:52:28+03:00 6 месяцев, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема