如何从Firefox WebDriver获取图像细节?
我在用Firefox通过Webdriver渲染的页面上有一张图片,我可以找到它的对象(wd.find_element_by_xpath("id('main')/form/p[5]/img")
),但是我该怎么获取它的内容呢?我想要的是要么是经过base64编码的内容,要么就是我电脑上硬盘上的位置。
附注:请不要建议我去获取src
然后用外部工具去抓取。我想要的是我已经在浏览器里的那张图片。
3 个回答
0
fvictor的回答有帮助,但语法已经改变。在Firefox 60.9esr版本中,条目是以 about:cache-entry?storage=disk&context=&eid=&uri=https://example.com/images/img.png
的形式存储的,而且页面上没有 file on disk
的标签。不过在页面底部,你仍然可以找到十六进制转储。
6
你可以通过访问一个特定的链接,从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
。在这种情况下,你只能解析十六进制转储。
也许有办法在磁盘上有缓存文件的情况下隐藏十六进制转储,但我不太确定。