Java 如果在Selenium中扩展了div,我如何断言?
我需要使用Java验证Java 如果在Selenium中扩展了div,我如何断言?,java,selenium-webdriver,Java,Selenium Webdriver,我需要使用Java验证div是否已展开或包含style=“display:block;” [版本…] 输入类型文本示例: 您可以使用getCssValue例如: element.getCssValue("display") 对于断言,您可以使用 String actualStatus = element.getCssValue("display"); String expectedStatus = "block"; //set expected value Assert.assertEqu
div
是否已展开或包含style=“display:block;”
[版本…]
输入类型文本示例:
您可以使用getCssValue
例如:
element.getCssValue("display")
对于断言,您可以使用
String actualStatus = element.getCssValue("display");
String expectedStatus = "block"; //set expected value
Assert.assertEquals(actualStatus,expectedStatus);
您可以参考我使用的:
private boolean isAttributePresent(WebElement element, String attribute) {
Boolean result = false;
try {
if (element.getCssValue(attribute) != null){
result = true;
}
} catch (Exception e) {}
return result;
}
然后:
boolean b=isAttribtuePresent(element,"display");
Assert.assertTrue(b, "true");
您不需要函数来完成此操作。您的答案中的函数在某些情况下是不正确的
.getCssValue()
即使找不到异常也不会引发异常,因此不需要使用try/catch
.getCssValue()
如果未找到,则不会返回null
。它返回空字符串assertTrue(!element.getCssValue(attribute).isEmpty());
如果返回的不是空字符串的内容表明该属性存在并具有值,则这是正确的。依赖特定的CSS属性值可能会使您的测试变得脆弱。如果开发人员在元素上使用第二个CSS类,他们可以将特定属性放入样式表中,您就可以测试t他需要一个额外的类。这样他们就可以在不破坏测试的情况下改变扩展的实现方式。你应该和他们谈谈。另外,你只是忽略了一个潜在的异常。你应该记录它。否则测试可能会在你不知道原因的情况下失败。这个答案在一些情况下是不正确的,更重要的是比它需要的复杂。有关详细信息和更好的解决方案,请参见我的答案。.getCssValue()返回一个
字符串
而不是布尔值
。我对此进行了更改:元素。isDisplayed();
返回的布尔值不能解决您提出的问题。您询问如何查找元素是否展开或包含样式。.isDisplayed()
两者都不做。.isEmpty()
返回一个布尔值。我很困惑。我问如何使用断言验证该元素是否显示。我用这个断言.assertTrue(element.isDisplayed())进行测试;