Firefox,Selenium,toDataURL,Uint8ClampedArray和Python

时间:2011-06-29 01:19:29

标签: javascript python firefox canvas selenium

我正在访问Javascript上的图像数据。现在,我想以最有效的方式通过Selenium API将其传递给Python进程。

使用canvas.toDataURL()方法传递画布数据很容易,但缺点是图像被编码并解码为PNG,从而为过程增加了大量开销。

我只是想知道我是否可以通过Selenium将原始数组数据从Javascript传递到Python,以便

  • 以原生格式传递数据(无符号整数数据)

  • 将原始像素数据转换为base64编码,采用某种toDataURL()方式,或者只是自己在Javascript中进行处理(希望是JIT的循环)

看起来像canvasContext.getImageData(0,0,w,h).data对象类型是Uint8ClampedArray。将这些数据转换为可以轻松通过Selenium传递给Python的格式的最佳方法是什么?

Selenium 2.0 RC,可以使用任何Firefox版本。

1 个答案:

答案 0 :(得分:1)

由于您通过getEval在Selenium和浏览器之间进行的通信是基于字符串的,因此我认为base64编码图像数据无法逃脱。可能无法发送原始二进制数据。

您可以设计自己的字符串编码方案,但它可能与内置方法一样有效。