我正在尝试使用selenium服务器和python客户端从网站保存图像.我知道图像的URL,但是无法找到保存它的代码,无论是文档本身还是嵌入当前浏览器会话.
到目前为止我找到的解决方法是保存页面的截图(有2种硒方法可以做到这一点),但我想要原始图像.
我不介意摆弄点击菜单选项等,但我找不到如何.
谢谢
我找到了将图像放入画布的代码,然后将其转换为数据 - 然后可以对其进行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安全错误!
| 归档时间: |
|
| 查看次数: |
9476 次 |
| 最近记录: |