我想知道一个比另一个好/缺点是什么?
我在一个无头远程实例上运行Selenium,使用Xvfb作为显示。
这两种方法都运行良好,结果的屏幕捕获文件(如果我转换base64捕获文件并将其保存为图像文件)是相同的文件大小和外观相同。
那么,我为什么要使用/不使用其中一个而另一个呢?
发布于 2014-08-29 10:07:40
使用get_screenshot_as_file,屏幕截图get保存到一个二进制文件中,而使用get_screenshot_as_base64,这将返回该屏幕快照的base64编码版本。
那么,为什么会有人使用base64版本呢?base64背后的全部想法是,它允许您创建二进制数据的ASCII表示,这将增加数据大小,但也允许您实际使用它。例如,如果您试图将二进制数据流发送到套接字,而不对其进行编码,那么除非服务器准备好处理二进制数据,否则很难预测结果。
因此,传输的数据可能是畸形的,提前切断传输,并导致许多其他的结果,几乎是无法预测的。例如,如果您要运行一个非常简单的套接字服务器,该服务器只需将接收到的所有内容输出到std:: out,接收二进制文件很可能会损坏您的控制台终端(您可以在您自己的Linux机器上尝试它)。
当然,如果服务器是为了接收和处理二进制数据而设计的,那么这将不是一个问题,但是服务器端通常会将用户输入解释为字符串,这使得使用base64成为明智的选择。
https://stackoverflow.com/questions/25565737
复制相似问题