Selenium:在Firefox中启用XPCOM访问和从Javascript写入文件
Selenium: enable XPCOM access and write to a file from Javascript in Firefox
在这个问题中有一个如何从Javascript请求XPCOM访问的示例:
如何在Mozilla Firefox中使用javascript创建文件
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
我希望找到一种方法,以类似的方式为我的Selenium测试脚本启用XPCOM访问,以便Javascript可以直接将RAW图像数据写入文件。这实际上延续了我之前的问题,如何以优化的方式提取像素数据:
Firefox, Selenium, toDataURL, Uint8ClampedArray和Python
我希望达到的目标
允许javascript通过Selenium访问XPCOM
在画布上渲染图像
读取画布像素作为原始图像数据(公共API应该在画布本身可用)
在已知路径位置使用XPCOM接口将RAW图像数据写入文件
注意:PNG等编码是不可接受的。这必须是速度的原始数据,因为它将直接馈送到视频编码,
在我看来,这篇博客文章就是你要找的:
用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
数据类型)进行调整,但基本上就是这样!
我不太了解Selenium,但是如果您可以在运行页面的Firefox版本上安装扩展,那么您可以在加载页面时将自己的脚本注入页面。查看这个SO答案
相关文章:
- 使用压缩的JavaScript文件(不是运行时压缩)
- 如何包含特定于每个视图angularjs的javascript文件
- 将数据从javascript文件导入VB.Net页面
- Chrome加载旧版本的Javascript文件
- 操作员”;新的“;根据我想在几个JavaScript文件中使用的类,在JavaScript中使用
- gulp-if-javascript文件,但不在gulp-useref的特定目录中
- 如何在visualstudio中调试web api时编辑javascript文件
- 关于引入外部javascript文件的问题&css通过https
- 有没有办法在tinymceiframe中加载一个外部javascript文件
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 在一个javascript文件中为整个网站创建标签
- 如何在定义js文件后为外部javascript文件设置变量
- 显示IIS上javascript文件(SOAP请求)的XML响应
- ResolveUrl没有'我似乎不适合当链接到具有动态虚拟目录的外部javascript文件时
- 我应该将MVC视图特定的javascript文件放在哪个文件夹中
- Django'支持Javascript文件中的翻译
- MVC正在忽略我的Javascript文件
- 为什么不't我的ruby代码与javascript文件一起插入
- 在Javascript文件中获取PHP变量
- 如何在Windows中将Javascript文件编译成二进制文件