- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
作为 QA,我使用 WSH 脚本在 IE 中进行自动上传、部署和一些时间的 Web 测试。 WSH(wscript) 与 JavaScript 可以打开 IE 窗口,激活它并访问 DOM 模型以执行某些操作或验证某些预期结果。它是一种 Selenium 1.0 方法,但不需要 JAVA 和任何环境配置,因此可以立即在任何开发人员/qa windows 机器上执行。
最近我发现了 NodeJS 及其所有功能,除了使用 Windows IE DOM 进行操作。找不到如何运行我的旧 WSH 脚本来测试 IE DOM,同时使用一些 NodeJS 模块来解析 XML 或运行测试报告服务器的方法。
那么问题来了:是否有可能同时运行 WSH JavaScript 和 Node.js 并使用来自两个世界的所有好东西?恐怕不是,但希望有人有解决方法...
作为解决方法,也许有人在 NodeJS 中找到了启动 IE 窗口访问其 DOM 的方法(...添加自己的 js 脚本或向其运行 SendKeys)!?
我知道 NodeJS 不是为执行 Windows 管理任务而设计的。
最佳答案
虽然实际上并没有像问题所要求的那样结婚,但@o_nix 在评论中提出了 https://github.com/idobatter/node-win32ole 的建议。 .
我建议这个模块可以解决从 Google 来到这里的人们的许多问题(就像我一样)。它也可以从 npm 获得:https://www.npmjs.com/package/win32ole
该模块还有不少示例,例如: https://github.com/idobatter/node-win32ole/blob/dev0.1.3/examples/activex_filesystemobject_sample.js
var win32ole = require('win32ole');
. . .
var withReadFile = function(filename, callback){
var fso = new ActiveXObject('Scripting.FileSystemObject');
var fullpath = fso.GetAbsolutePathName(filename);
var file = fso.OpenTextFile(fullpath, 1, false); // open to read
try{
callback(file);
}finally{
file.Close();
}
};
var withEachLine = function(filename, callback){
withReadFile(filename, function(file){
// while(file.AtEndOfStream != true) // It works. (without unary operator !)
// while(!file.AtEndOfStream) // It does not work.
while(!file.AtEndOfStream._) // *** It works. oops!
callback(file.ReadLine());
});
};
withEachLine(testfile, function(line){
console.log(line);
});
所以,对我来说,这与结合旧的 WSH 脚本一样好。当然会涉及调整,但那就是再见 WSH。
更具体地说,对于手头的问题,这是一个演示 IE 脚本的片段: https://github.com/idobatter/node-win32ole/blob/master/examples/ie_sample.js
var win32ole = require('win32ole');
. . .
var ie = new ActiveXObject('InternetExplorer.Application');
ie.Visible = true;
for(var i = 0; i < uris.length; ++i){
console.log(uris[i]);
ie.Navigate(uris[i]);
win32ole.sleep(15000, true, true);
}
ie.Quit();
关于node.js - 是否可以将 WSH (wscript) 与 nodejs 结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11267265/
我正在尝试执行 vagrant up 但一直遇到此错误: ==> default: IOError: [Errno 13] Permission denied: '/usr/local/lib/pyt
我在容器 div 中有一系列动态创建的不同高度的 div。 Varying text... Varying text... Varying text... Varying text.
通过 cygwin 运行 vagrant up 时遇到以下错误。 stderr: /bin/bash: /home/vagrant/.ansible/tmp/ansible-tmp-14872260
今天要向小伙伴们介绍的是一个能够快速地把数据制作成可视化、交互页面的 Python 框架:Streamlit,分分钟让你的数据动起来! 犹记得我在做机器学习和数据分析方面的毕设时,
我是 vagrant 的新手,正在尝试将第二个磁盘添加到我正在用 vagrant 制作的虚拟机中。 我想出了如何在第一次启动虚拟机时连接磁盘,但是当我关闭机器时 然后再次备份(使用 'vagrant
我是一名优秀的程序员,十分优秀!