6

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

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

4

3 回答 3

6

通过导航到这样的 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仅缓存在内存中的小文件。在这种情况下,您唯一的选择是解析十六进制转储。

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

于 2009-11-23T04:22:41.713 回答
1

我创建了一个小脚本,用于从浏览器缓存中提取数据。您可以使用它提取缓存条目。看看这个要点。查看此帖子以获取使用指南。

于 2015-10-17T17:23:55.760 回答
0

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

于 2021-06-27T20:47:41.197 回答