用selenium和firefox保存图像

Ber*_*ala 9 python selenium

我正在尝试使用selenium服务器和python客户端从网站保存图像.我知道图像的URL,但是无法找到保存它的代码,无论是文档本身还是嵌入当前浏览器会话.

到目前为止我找到的解决方法是保存页面的截图(有2种硒方法可以做到这一点),但我想要原始图像.

我不介意摆弄点击菜单选项等,但我找不到如何.

谢谢

Sco*_*ter 5

我找到了将图像放入画布的代码,然后将其转换为数据 - 然后可以对其进行base64编码.我的想法是在selenium中使用eval命令调用它,但是在我的测试中,toDataURL抛出了一个安全错误1000.如果不是因为该错误,它似乎非常接近解决方案.

var data, canvas, ctx;
var img = new Image();
img = document.getElementById("yourimageID");
canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);  // everything works up to here
data = canvas.toDataURL();  // this fails ***
var base64Img = data.replace(/^data:image\/(png|jpg);base64,/, "");
Run Code Online (Sandbox Code Playgroud)

做一些研究我发现当图像来自不同的域时,不允许使用toDataURL.但是,我甚至通过保存页面来尝试此代码,除了图像本身和此脚本之外,还剥离了所有内容.

例如(index.html):

<html><head></head><body>
<img src="local/hard/disk/img.jpg" id="yourimageID">
<script>
// script from above
</script>
</body></html>
Run Code Online (Sandbox Code Playgroud)

img.jpg和index.html存储在本地,在本地打开firefox页面,仍然会收到1000安全错误!


Web*_*ber -1

转到图像 URL,然后截取页面的屏幕截图怎么样?Firefox 以全屏显示图像。希望这可以帮助..