为什么Base64用在OutputType接口?

时间:2018-03-27 13:35:27

标签: selenium selenium-webdriver webdriver base64

我想知道为什么base64与selenium的outputtype接口一起使用。 我曾经把屏幕截图当作文件类型,Base64类型,Bytes []类型但是不了解base64的概念?

1 个答案:

答案 0 :(得分:0)

当您尝试通过TakesScreenshot界面截取屏幕截图时,可以使用以下任一格式保存输出文件:

  • FILE :将屏幕截图导入临时文件,一旦JVM退出,该文件将被删除。

    File screenshotFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
    
  • BASE64 :以base64数据的形式获取屏幕截图。

    String screenshotBase64 = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BASE64);
    
  • BYTES :以原始字节获取屏幕截图。

    byte[] screenshotByte = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
    

为什么选择Base64编码

当您打算通过网络发送二进制数据时,您无法通过原始格式将数据转换为网络上的位和字节流来发送它。某些媒体仅用于流媒体文本。这些协议可能会将您的二进制数据解释为控制字符,而不是它们。

Base64 Encoding将您的二进制数据转换为64个可打印的ASCII字符。通常,它是针对电子邮件消息中的二进制数据和“基本”HTTP身份验证完成的。这64个可打印的字符是:

  • 26个大写字母[A-Z]
  • 26个小写字母[a-z]
  • 10位[0-9]
  • 2个符号

Base64编码表的快照

Base64EncodingTable