硒:启用XPCOM访问并从Firefox中的Javascript写入文件

在这个问题中,有一个示例如何从Javascript请求xpcOM访问:

How to create a file using javascript in Mozilla Firefox

 netscape.security.PrivilegeManager.enablePrivilege("Universalxpconnect");

我希望找到一种以类似的方式为我的Selenium测试脚本启用xpcOM访问的方法,以便Javascript可以将RAW图像数据直接写入文件.这实际上继续了我先前的问题,即如何以优化的方式提取像素数据:

Firefox, Selenium, toDataURL, Uint8ClampedArray and Python

我希望实现的目标

>为通过Selenium运行的JavaScript启用xpcOM访问
>在画布上渲染图像
>读取画布像素作为原始图像数据(画布本身应具有公共API)
>使用xpcOM接口在已知路径位置将RAW图像数据写入文件

注意:PNG等编码无法使用.这必须是速度的原始数据,因为它将直接输入视频编码,

解决方法:

在我看来,此博客文章正是您想要的:

Save to local files with XPCOM for Selenium Firefox Chrome

function saveFile(fileName, val){
   try {
      netscape.security.PrivilegeManager.enablePrivilege("Universalxpconnect");
   } catch (e) {
      //alert("Permission to save file was denied.");
   }
   var file = Components.classes["@mozilla.org/file/local;1"]
             .createInstance(Components.interfaces.nsILocalFile);
   file.initWithPath(fileName);
   if (file.exists() == false) {
     //alert("Creating file... " );
     file.create( Components.interfaces.nsIFile.norMAL_FILE_TYPE, 420 );
   }
   var outputStream = Components.classes["@mozilla.org/network/file-output-stream;1"]
            .createInstance(Components.interfaces.nsIFileOutputStream);
   outputStream.init( file, 0x04 | 0x08 | 0x20, 420, 0 ); 
   //UTF-8 convert
   var uc = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]
     .createInstance(Components.interfaces.nsIScriptableunicodeConverter);
   uc.charset = "UTF-8";
   var data_stream = uc.ConvertFromUnicode(val);
   var result = outputStream.write(data_stream, data_stream.length );
   outputStream.close(); 
}

您必须根据情况(RAW数据类型)对其进行调整,但是基本上就是这样!

相关文章

转载地址:https://www.cnblogs.com/mini-monkey/p/12104821...
web自动化测试过程中页面截图相对比较简单,可以直接使用sel...
目录前言一、Selenium简介二、浏览器驱动1.浏览器驱动参考2....
一、iframe的含义:iframe是HTML中框架的一种形式,在对界面...
转载请注明出处❤️作者:测试蔡坨坨原文链接:caituotuo.to...
'''##**认识selenium**​**下载:pipinstall...