SeleniumWebDriver:如何检查img元素是否真正具有高度属性

SeleniumWebDriver:如何检查img元素是否真正具有高度属性,selenium,testing,selenium-webdriver,Selenium,Testing,Selenium Webdriver,在chrome上的java Selenium web驱动程序中,我需要确保图像具有高度属性。我的HTML代码如下所示: <img src="https://www.w3schools.com/tags/img_girl.jpg"> 尽管没有高度属性,但它总是返回true如果我尝试执行 boolean s = driver.findElement(By.tagName("img")).getAttribute("height&quo

在chrome上的java Selenium web驱动程序中,我需要确保图像具有高度属性。我的HTML代码如下所示:

<img src="https://www.w3schools.com/tags/img_girl.jpg">
尽管没有高度属性,但它总是返回true如果我尝试执行

 boolean s = driver.findElement(By.tagName("img")).getAttribute("height") !=null;
String s = driver.findElement(By.tagName("img")).getAttribute("height");

尽管HTML代码中没有height属性,我还是会得到600。有没有其他方法可以检查它?

您可以在开发人员工具的
样式部分检查高度参数。请参阅随附的堆栈溢出示例图像的屏幕截图。您可以在右侧看到
height
参数。一般来说,这里提到的是尺寸

您需要了解并在
style
部分中查找特定的图像属性,作为整个页面的显示
CSS
属性

试试这个例子:

@测试
public void testHeightAttribute(){
驱动程序。获取(“https://webelement.click/en/welcome");
WebElement img=driver.findElement(By.xpath(“//img[1]”);
System.out.println(img.findElements(By.xpath(“.[@height]”).size());
System.out.println(img.findElements(By.xpath(“.[@src]”).size());
}
但我不确定这是最优雅的方式:)。其思想是使用元素本身作为搜索上下文来查找元素(查找元素本身中的元素)。如果DOM中不存在属性,则列表将为空(
size()==0
)。否则它将是
1

基本上,常用方法如下所示:

public boolean hasAttributeInDom(WebElement元素,String attr){
return!element.findElements(By.xpath(“.[@”+attr+“])).isEmpty();
}

请参考SO帖子,如果它的帮助是元素的HTML,请?@KuldeepKamune不,它不起作用。它仍然返回图像的实际高度和宽度(即使图像没有高度和宽度属性),我需要知道的是图像是否有高度属性。@DebanjanB没有外部HTML,我需要在页面上的每个图像上检查它。@FaezehShayesteh:嘿,抱歉,我第一次没有听到你的问题。我已经在答案中发布了方法,通常我会使用该方法来验证维度。请检查是否有帮助。谢谢。使用xpath对我来说很有用,但我无法在ing上调用findElement(我不知道为什么),我可以通过如下方式直接寻址它:int-imagesWidthNum=driver.findElements(by.xpath(“//img[@width]”)。size()当你说在
img
上调用
findElement
有问题时,你的意思是如果你复制粘贴我的代码,你就有问题了吗?或者你试图将其应用到你的案例中,并得到问题?