Как проверить динамическое содержимое веб-приложения c, которое управляется базой данных в Selenium Java - PullRequest
0 голосов
/ 30 января 2020

Я новичок в селене. Я хочу проверить динамическое содержимое c веб-приложения. Весь контент поступает из базы данных на основе бизнес-логики c. Я покончил с поиском в Google, но не смог найти решение.
Ниже приведен код HTML, содержащий данные c динамического набора в скобках {{Curly}}

<label class="form-check-label form-text" [for]="plan.planId">
        <input type="radio" class="input-radio" [id]="plan.planId" name="selectPlan" [value]="plan.planId" [(ngModel)]="selectPlanOption">
            {{plan.device}} - <span id="deviceLabel" class="text-uppercase"></span> <b><span id="animatedText" class="animate-text yellow-text weight-class">
                ${{plan.price}} ({{plan.discount}})</span></b>
</label>

Кроме того, у меня есть сомнение.

Это хорошая практика для проверки динамического c содержимого в Selenium?

Любая помощь будет оценена.

Заранее спасибо .

1 Ответ

0 голосов
/ 30 января 2020

Требуемый элемент является динамическим c элементом, поэтому для извлечения text из {{plan.device}} вам нужно вызвать WebDriverWait для visibilityOfElementLocated(), и вы можете использовать любой из следующие стратегии локатора :

  • cssSelector:

    System.out.println((String)((JavaScriptExecutor)driver).executeScript("return arguments[0].childNodes[3].textContent;", new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("label.form-check-label.form-text")))));
    
  • xpath:

    System.out.println((String)((JavaScriptExecutor)driver).executeScript("return arguments[0].childNodes[3].textContent;", new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//label[@class='form-check-label form-text'][//input[@class='input-radio' and @name='selectPlan']]")))));
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...