如何从firefox webdriver获取图像细节?

时间:2009-11-22 12:09:31

标签: python firefox webdriver

我在Firefox上通过Webdriver呈现的页面上有一个图像,我可以得到它的对象(wd.find_element_by_xpath("id('main')/form/p[5]/img")),但是如何让它的主体得到base64编码或只是我硬盘上的一个位置?

PS:请不要建议获取src并使用外部工具获取它。我想要我在浏览器中已有的图像。

3 个答案:

答案 0 :(得分:4)

可以通过导航到这样的URL来从Firefox的缓存中提取缓存的图像:

about:cache-entry?client=HTTP&sb=1&key=http://your.server/image.png

结果页面将包含一行“disk on disk”标签,如下所示:

file on disk: /home/fviktor/.mozilla/firefox/7jx6k3hx.default/Cache/CF7379D8d01

此页面还将包含文件内容的十六进制转储。您可以从该路径加载文件或解析十六进制转储。请注意,如果小文件仅缓存在内存中,则路径也可以是none。在这种情况下,唯一的选择是解析十六进制转储。

如果磁盘上有缓存文件,可能有一种方法可以抑制十六进制转储,但我不确定。

答案 1 :(得分:0)

我已经创建了一个用于从浏览器缓存中提取数据的小脚本。您可以使用它提取缓存条目。请查看此gist。查看this post了解使用指南。

答案 2 :(得分:0)

fvictor 的回答有所帮助,但语法已更改。在 Firefox 60.9esr 版本中,条目存储为 about:cache-entry?storage=disk&context=&eid=&uri=https://example.com/images/img.png,并且页面不包含 file on disk 标签。但在底部你仍然会找到十六进制转储。