Проверьте с помощью тестов селена, если все это div имеет текст - PullRequest
0 голосов
/ 19 октября 2018

Это модальное окно, и мне нужно проверить, все ли поля заполнены.

 <div _ngcontent-c6="" class="modal-body">
    <div _ngcontent-c6="" class="row">
    <div _ngcontent-c6="" class="col-12 bg-termin_ztv">Wichtig</div>
    </div>
    <br _ngcontent-c6="">
    <div _ngcontent-c6="" class="row">
    <div _ngcontent-c6="" class="col-2"> AD: </div>
    <div _ngcontent-c6="" class="col-10">
    <span _ngcontent-c6="">Arnemann, Marcus</span><span _ngcontent-c6=""> (beschäftigt)</span>
    </div>
    </div>
    <br _ngcontent-c6="">
    <div _ngcontent-c6="" class="row">
    <div _ngcontent-c6="" class="col-2"> Anfang: </div>
    <div _ngcontent-c6="" class="col-3"> 23.10.2018 </div>
    <div _ngcontent-c6="" class="col-7"> 09:00 </div>
    </div>
    <br _ngcontent-c6="">
    <div _ngcontent-c6="" class="row">
    <div _ngcontent-c6="" class="col-2"> Ende: </div>
    <div _ngcontent-c6="" class="col-3"> 23.10.2018 </div>
    <div _ngcontent-c6="" class="col-7"> 01:00 </div>
    </div>
    <br _ngcontent-c6="">
    <div _ngcontent-c6="" class="row">
    <div _ngcontent-c6="" class="col-2"> Ort: </div>
    <div _ngcontent-c6="" class="col-10"> Musterstraße 13, 12345 Musterstadt </div></div>
    <br _ngcontent-c6="">
    <div _ngcontent-c6="" class="row">
    <div _ngcontent-c6="" class="col-12"> Hallo Herr Tilsner,
                    'Wir haben für Sie einen Termin vereinbart. </div>
    </div>
    <br _ngcontent-c6="">
    </div>

Я пробовал это:

     modalBody = driver.findElements(By.xpath("//tm-termin-anzeige [contains(@class, 'modal-body')]").getText());
     assertTrue(modalBody.getEventElements().size() > 0);

Работает, но не хорошо.Я вернул true, если доступно только одно письмо.И я не могу дать какой-то идентификатор каждой области.Потому что он генерируется динамически с Angular.

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Вы можете попробовать скрипт, как показано ниже.

  IWebElement WebElement = driver.FindElement(By.XPath("//tm-termin-anzeige [contains(@class, 'modal-body')]"));
  IList<IWebElement> AllTexts = WebElement.FindElements(By.XPath("//div"));

  int RowCount = AllTexts.Count;
  for (int i = 0; i < RowCount; i++)
        {
         AllTexts[i].getText();
// You can improve here like "if there is no text give me element" because not all divs has text under modal-body 
        }
0 голосов
/ 19 октября 2018

Все элементы div, вложенные после div с строкой класса

//div[@class='modal-body']/div[@class='row']/descendant::div

, как я вижу, у них есть только текст, это была ваша проблема?

Получение количества элементов без текста:

List<WebElement> allelements = driver.findElements(By.xpath("//div[@class=\'modal-body\']/div[@class=\'row\']/descendant::div"));
long withouttext = allelements.stream().filter(e -> !e.getText().isEmpty()).count();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...