如何使用 Selenium 检查页面上是否显示图像?
我们可以使用 Selenium 检查页面上是否显示图像。为了验证图像,我们需要借助 Javascript Executor。我们将使用 executeScript 方法在 Selenium 中执行 Javascript 命令。
然后,将命令 return arguments[0].complete && typeof arguments[0].naturalWidth != \"undefined\" && arguments[0].naturalWidth > 0 作为该方法的参数进行传递。此外,必须在代码中添加语句 import org.openqa.selenium.JavascriptExecutor。
语法
WebElement i = driver.findElement(By.xpath("//img[@title='Tutorialspoint']")); Boolean p = (Boolean) ((JavascriptExecutor)driver) .executeScript("return arguments[0].complete " + "&& typeof arguments[0].naturalWidth != \"undefined\" " + "&& arguments[0].naturalWidth > 0", i);
让我们检查下面这个图像是否出现在页面上 −
示例
代码实现。
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; import org.openqa.selenium.JavascriptExecutor; public class ImageChk{ public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); String url = "https://tutorialspoint.com/index.htm"; driver.get(url); //identify image WebElement i = driver.findElement (By.xpath("//img[@title='Tutorialspoint']")); // Javascript executor to check image Boolean p = (Boolean) ((JavascriptExecutor)driver) .executeScript("return arguments[0].complete " + "&& typeof arguments[0].naturalWidth != \"undefined\" " + "&& arguments[0].naturalWidth > 0", i); //verify if status is true if (p) { System.out.println("Logo present"); } else { System.out.println("Logo not present"); } driver.quit(); } }
输出
广告