我正在使用 Javascript 访问图像数据。现在我想以最有效的方式通过 Selenium API 将其传递给 Python 进程。
使用 canvas.toDataURL() 方法可以很容易地传递 Canvas 数据,但缺点是图像会被编码和解码为 PNG,这会增加该过程的大量开销。
我只是想知道我是否可以通过 Selenium 将原始数组数据从 Javascript 传递到 Python,这样
以 native 格式(无符号整数数据)传递数据
将原始像素数据转换为 base64 编码,以某种 toDataURL() 方式或简单地自己在 Javascript 中进行处理(希望是 JIT 循环)
看起来像 canvasContext.getImageData(0, 0, w, h).data 对象类型是 Uint8ClampedArray。将此数据转换为某种可以轻松通过 Selenium 传递给 Python 的格式的最佳方法是什么?
Selenium 2.0 RC,任何火狐版本都可以使用。
最佳答案
由于您通过 getEval 在 Selenium 和浏览器之间进行的通信是基于字符串的,因此我认为无法逃避对图像数据进行 base64 编码。发送原始二进制数据可能是不可能的。
您或许可以设计自己的字符串编码方案,但它可能与内置方法一样有效。
关于javascript - Firefox、Selenium、toDataURL、Uint8ClampedArray 和 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6514812/