作为测试的一部分,我需要检查给定元素的标记和样式。元素在页面上显示为(粗体、斜体和居中):
<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']")