检查硒测试,如果所有这些div都有文本



这是模态窗口,我需要检查 检查是否填写了所有字段。

<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。而且我不能为每个字段都提供一些 id。因为它是用 Angular 动态生成的。

所有嵌套在带有类行的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();

您可以尝试如下脚本。

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 
}

最新更新