MSL*_*MSL 1 selenium image web-scraping
我想查找整个站点的损坏图像。我只能在一个页面上执行此操作,例如:主页。
我们如何在整个网站上做到这一点?
要检查图像是否损坏,您可以简单地检查naturalWidth元素的是否为0。您可以循环浏览页面上的图像,并对每个图像进行此检查。至于在整个站点上执行此操作,您将必须构建一个爬网程序,或者理想情况下,找到一个现有的爬网程序,这对于SO的问题是不可行的。
演示代码
driver.get("http://the-internet.herokuapp.com/broken_images");
for (WebElement image : driver.findElements(By.cssSelector("img")))
{
isImageBroken(image);
}
Run Code Online (Sandbox Code Playgroud)
测试破损图像的功能
public void isImageBroken(WebElement image)
{
if (image.getAttribute("naturalWidth").equals("0"))
{
System.out.println(image.getAttribute("outerHTML") + " is broken.");
}
}
Run Code Online (Sandbox Code Playgroud)
运行时,输出
<img src="asdf.jpg"> is broken.
<img src="hjkl.jpg"> is broken.
Run Code Online (Sandbox Code Playgroud)
注意:上面的函数专门针对此问题。如果返回a boolean并在测试脚本中完成验证会更好,例如
public boolean imageExists(WebElement image)
{
return !image.getAttribute("naturalWidth").equals("0");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5951 次 |
| 最近记录: |