使用JavascriptExecutor进行图像验证始终返回' false'即使图像被加载

时间:2017-10-17 13:57:18

标签: javascript java html selenium-webdriver automation

我正在尝试使用Selenium验证网页中加载的图片。下面是我用于相同的行。 ' ImagePresent'总是回归“假”。即使它能够从最后一行捕获并打印图像的属性值。

 WebElement Imglogo = driver.findElement(By
            .xpath("//img[@src='Images/Logo.png']"));

    Boolean ImagePresent = (Boolean) ((JavascriptExecutor) driver)
            .executeScript(
                    "return arguments[0].complete && typeof arguments[0].naturalWidth != \"undefined\" && arguments[0].naturalWidth > 0",
                    Imglogo);
    System.out.println("The boolean value of ImagePresent: "+ImagePresent); //returns false
    System.out.println("Image Attribute: "+Imglogo.getAttribute("src")); //prints the full path

1 个答案:

答案 0 :(得分:0)

我认为你在这里试图过于花哨。在这种情况下,你真的不需要JSE。您可以使用.getAtribute("naturalWidth")并比较预期回报。

WebElement Imglogo = driver.findElement(By.xpath("//img[@src='Images/Logo.png']"));
System.out.println(Imglogo.getAttribute("naturalWidth"));
System.out.println(Imglogo.getAttribute("naturalWidth").equals("0"));

......等等。