我在Firefox上通过Webdriver呈现的页面上有一个图像,我可以得到它的对象(wd.find_element_by_xpath("id('main')/form/p[5]/img")
),但是如何让它的主体得到base64编码或只是我硬盘上的一个位置?
PS:请不要建议获取src
并使用外部工具获取它。我想要我在浏览器中已有的图像。
答案 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)
答案 2 :(得分:0)
fvictor 的回答有所帮助,但语法已更改。在 Firefox 60.9esr 版本中,条目存储为 about:cache-entry?storage=disk&context=&eid=&uri=https://example.com/images/img.png
,并且页面不包含 file on disk
标签。但在底部你仍然会找到十六进制转储。