代码之家  ›  专栏  ›  技术社区  ›  Lunedor

可以从页面中保存带有名称的图片吗?

  •  0
  • Lunedor  · 技术社区  · 4 年前

    我想把图片和整个产品保存在一个网站上,并在同一页上写上它们自己的名字,在一个有以下逻辑的网站上可以这样做吗?

    主产品页面在同一页面上有整个产品的链接,所以我想我可以设法在这里获得每一个产品,在产品页面中有子菜单,如“General-Gallery等”。我想从General部分获得产品名称,然后转到Gallery部分,用这个名称保存图像,如ProductName1。jpg,ProductName2。jpg。。。

    硒是可能的还是不可能的?

    产品页面: http://www.laboory.com/products

    以下是产品的示例链接: http://www.laboory.com/product/laboory-water-soluble-m/3937

    0 回复  |  直到 4 年前
        1
  •  2
  •   Nandan A    4 年前

    是的,我们能做到。正如你提到的 selenium 只标记我认为它正在使用 Java .

    • 转到产品页面
    • 获取图像源 URL 和产品名称。
    • 使用 BufferedImage ImageIO 类将图像保存到所需的位置。

    密码 :

    driver = new ChromeDriver(options);
    driver.manage().deleteAllCookies();
    
    driver.get("http://laboory.com/product/laboory-water-soluble-m/3937");
                 
    WebElement logo = driver.findElement(By.xpath("(//span//img[@class='imgin' and @src])[1]"));
    String logoSRC = logo.getAttribute("src");
    String productName = driver.findElement(By.xpath("//div/h1")).getText();
         
    URL imageURL = new URL(logoSRC);
    BufferedImage saveImage = ImageIO.read(imageURL);
    ImageIO.write(saveImage, "png", new File(productName+".png"));
    
    

    输出 :产品 CAPSULE GC 510.png 保存在项目目录中。

    笔记 :您也可以更改位置。

        2
  •  1
  •   Rohit    4 年前

    您可以使用图像元素的尺寸来捕获图像的屏幕截图,并使用所需的名称保存它,以下是参考 How to capture the screenshot of a specific element rather than entire page using Selenium Webdriver?