通过chrome控制台从页面保存/复制图像到剪贴板

mzsu5hc0  于 2022-12-25  发布在  Go
关注(0)|答案(2)|浏览(385)

对于我的项目,我需要复制图像***(不是网址,图像名称。只有数据的能力,例如,粘贴到"微软油漆")***从页面到剪贴板的Chrome控制台。
我试过这个:
第一个月
但它什么都不返回...它只对文本有效。
如果你不知道,那么如何通过chrome控制台下载此图像?

    • 或**

如何制作网页截图,并使用Chrome控制台复制或下载?

附言:我不能使用任何js库。

oalqel3c

oalqel3c1#

我已经在chrome开发工具中探索了一些东西
https://homeguides.sfgate.com/stop-air-flow-ceiling-air-diffuser-28867.html-这是我正在使用它作为参考的网站。
1.在Chrome控制台中尝试以下命令

imageurl= document.getElementsByTagName('img')[0].currentSrc;
copy (imageurl);

注意:如果要获得不同的图像,可以在此处更改img [1]数组

1.然后如果你按下键盘上的ctrl + v,你可以看到图片的网址和https。请看上面的截图。
1.您可以在新选项卡上执行ctrl+ v来加载图像。

或****您可以尝试以下方法。

1.右键单击图像,然后单击检查元素
1.你可以看到一些图像的网址。复制该网址

1.打开新选项卡并粘贴URL
1.如果右键单击它,您可以看到“保存图像”选项。
希望它能对你有所帮助。

lyr7nygr

lyr7nygr2#

正如您提到的,您正在使用Selenium,下面是如何使用Selenium保存图像:
你需要获取图片的URL,加载它(在这个例子中使用ImageIO)并保存它。例如,在Java中你可以这样做:

try {
    driver = new ChromeDriver();
    driver.get("http://...");

    WebElement img = driver.findElement(By.cssSelector("#selector"));
    BufferedImage buffer = ImageIO.read(new URL(img.getAttribute("src")));
    ImageIO.write(buffer, "png", new File("image.png"));
} catch (Exception e) {
    e.printStackTrace();
} finally {
    driver.close();
}

如果你想直接复制它,你的类需要实现java.awt.datatransfer.ClipboardOwner,然后你可以这样做:

try {
    driver = new ChromeDriver();
    driver.get("http://...");

    WebElement img = driver.findElement(By.cssSelector("#selector"));
    TransferableImage transferable = new TransferableImage(ImageIO.read(new URL(img.getAttribute("src"))));
    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(transferable, this );
} catch (Exception e) {
    e.printStackTrace();
} finally {
    driver.close();
}

关于您的其他问题,以下是如何使用Chrome DevTools进行屏幕截图:
Chrome DevTools中有3个 Capture... 命令,只需按照以下步骤操作即可:
1.打开开发工具。
1.转到 Elements 选项卡,然后单击要进行屏幕截图的元素。
1.在Mac上按Cmd + P或在Windows上按Ctrl + P。

  • 键入> screen。您将获得3个相关建议:
  • *Mobile捕获全尺寸屏幕截图 *:捕获整个页面,包括不可见(超出视区)区域。
  • *Mobile捕获节点屏幕截图 *:捕获单个节点,在本例中,即在第二步中单击的元素。
  • *Mobile捕获屏幕截图 *:捕获页面的可见区域(视区)。
  • 点击其中任何一个,截图就会自动下载。

但是,请记住此功能并不总是工作正常,尤其是 * 捕获节点屏幕截图 *,因此最好捕获页面的可见区域,然后裁剪。

相关问题