为具有多个标记的元素断言标记



作为测试的一部分,我需要检查给定元素的标记和样式。元素在页面上显示为(粗体、斜体和居中):

<p style="text-align: center;">
   <em>
       <strong>TEST</strong>
   </em>
</p>

我有一些代码来获取/断言"strong"标签:

assertEquals ("strong", driver.findElement(By.xpath("//*[text()='TEST']")).getTagName()); 

如果我添加另一行来断言em标签,它会返回strong,我不知道如何通过这个

assertEquals ("em", driver.findElement(By.xpath("//*[text()='TEST']/strong")).getTagName();

此外,当我尝试以下操作来获取样式属性时,它无法通过em和强标记。(org.unit.ComparisonFailure:应为:<[text-align:center;]>,但实际为:lt;[]>)。这确实适用于在p标签中只有文本和对齐的元素

assertEquals ("text-align: center;", driver.findElement(By.xpath("//*[text()='TEST']")).getAttribute("style"));

findElement将找到<em>TEST<em>,因此您得到[]作为

assertEquals ("text-align: center;", driver.findElement(By.xpath("//*[text()='TEST']")).getAttribute("style"));

要获得样式属性,请在<p>标签上操作

driver.findElement(By.xpath("//p")).getAttribute("style"); 

为了在一条语句中验证所有内容:下面使用的XPath给出了一个元素,该元素的p居中,有一个带有强标记的强调文本。如果找到了元素,则验证了您的条件。

driver.findElement(By.xpath("//p[@style='text-align: center;']/em/strong[text()='TEST']")

最新更新