我在 Firefox 通过 Webdriver 呈现的页面上有一张图片,我可以获取它的对象 ( wd.find_element_by_xpath("id('main')/form/p[5]/img")
),但是我如何才能获取它的主体,要么是 base64 编码的,要么只是我硬盘上的一个位置?
PS:请不要建议src
使用外部工具获取并获取它。我想要浏览器中已有的图像。
通过导航到这样的 URL,可以从 Firefox 的缓存中提取缓存的图像:
about:cache-entry?client=HTTP&sb=1&key=http://your.server/image.png
结果页面将包含一行带有“磁盘上的文件”标签的行,如下所示:
file on disk: /home/fviktor/.mozilla/firefox/7jx6k3hx.default/Cache/CF7379D8d01
此页面还将包含文件内容的十六进制转储。您可以从该路径加载文件或解析十六进制转储。请注意,路径也可以是none
仅缓存在内存中的小文件。在这种情况下,您唯一的选择是解析十六进制转储。
如果磁盘上有缓存文件,也许有一种方法可以抑制十六进制转储,但我不确定。
fvictor的回答有所帮助,但语法已经改变。在 Firefox 版本 60.9esr 中,条目存储为about:cache-entry?storage=disk&context=&eid=&uri=https://example.com/images/img.png
,并且页面不包含file on disk
标签。但在底部,您仍然会找到十六进制转储。