WSH(wscript)是否可以与nodejs结合

2024-03-21

作为 QA,我使用 WSH 脚本在 IE 中进行自动上传、部署和一些 Web 测试。使用 JavaScript 的 WSH(wscript) 可以打开 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 管理任务而设计的。


虽然实际上并非如此marrying根据问题的要求,@o_nix 在评论中提出了以下建议https://github.com/idobatter/node-win32ole https://github.com/idobatter/node-win32ole.

我建议这个模块可以满足从 Google 来到这里的人们的许多问题(就像我所做的那样)。 也可以从这里的 npm 获得:https://www.npmjs.com/package/win32ole https://www.npmjs.com/package/win32ole

该模块还有很多示例,例如:https://github.com/idobatter/node-win32ole/blob/dev0.1.3/examples/activex_filesystemobject_sample.js 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 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();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WSH(wscript)是否可以与nodejs结合 的相关文章

  • 通过 PHP 连接到 socket.io(nodejs)

    我需要通过 php 连接到 websocket 发送数据并立即断开连接 无需等待套接字的响应 我用了大象io http elephant io 但更新库后不起作用 请告诉我如何通过 PHP 连接到 websocket 我也遇到了这个问题 学
  • Laravel Homestead 中 npm 安装错误有解决方案吗?

    Windows 10 家园 虚拟盒6 0 8 流浪者2 2 5 节点 v12 5 0 npm v6 10 1 我想做的就是在新安装的 Laravel 应用程序中执行 npm install 命令 但我不断收到错误 经过两天的谷歌搜索并尝试了
  • 在生产中使用 babel-node 可以吗

    我一直在使用 babel node 和 browserify 以及 babelify 转换来开发一个网站 以支持 ES6 语法 我只是想知道 我可以在生产中运行它吗 babel node server 而不是 node server 要在
  • Heroku ENOENT:没有这样的文件或目录,stat '/app/build/index.html'

    我在 Heroku 中运行一个简单的测试站点时遇到问题 由于某种原因 当我希望它从 build 提供服务时 它试图从 app build 提供内容 错误 ENOENT 没有这样的文件或目录 stat app build index html
  • 变量前面加双下划线

    我的节点代码中有以下代码片段 var fs require fs fs readdir dirname function err files console log files 为什么变量 dirname 有双下划线 我知道一个下划线是私有
  • IE8 和 9 上的 socket.io 问题

    Socket io 在除 IE8 和 9 之外的所有平台上都能完美运行 这是客户端要求 你们能帮忙解决这个问题吗 我一直在阅读所有类似的问题 但到目前为止我发现的大多数解决方案都无法解决 IE8 上的这个问题 这是结构 服务器端 var i
  • npm 错误! cb.apply 不是函数

    我收到这个错误 npm ERR cb apply is not a function 在Linux中做的时候npm install虽然我的npm版本是6 9 0 我的节点版本是v12 18 3 如何解决这个问题 如果您共享的是 Window
  • 如何从@google-cloud/storage读取文件?

    我正在从我的存储桶中检索文件 我收到该文件并想要阅读其内容 但我不想将其下载到我的本地项目 我只想读取内容 获取数据并用它进行其他操作 我的代码 export const fileManager async gt try const sou
  • 以异步方式执行 Express res.render

    我有一个 Nodejs 应用程序 其中res renderExpress 方法以阻塞方式花费大约 400 毫秒 我如何处理它以非阻塞方式执行 我的 apache 基准测试需要 12 秒来执行大约 30 个并发请求 我如何以更好的方式实施这一
  • 使用 Nodemailer 提交电子邮件时 NodeJs 错误

    我已按照以下步骤设置 Nodemailer 1 允许访问 Gmail 中安全性较低的应用程序 2 在app js中写入以下内容 app post reachus send function req res var transporter n
  • 如何使用 AMQP 以“PeekLock”模式从 Azure 服务总线队列获取消息?

    我们正在尝试在 Node 应用程序中使用 Azure 服务总线 我们的要求是从队列中获取多条消息 由于Azure SDK for Node不支持批量检索 我们决定使用AMQP 虽然我们能够使用 Peek Messages 获取消息 如此处所
  • 使用 nw-gyp 构建 node-sqlite3

    我正在尝试为 node webkit 构建 sqlite3 The sqlite3 https www npmjs com package sqlite3 installing页面解释说它需要使用 nw gyp 来完成 据我了解 我应该下载
  • node.js通过aws-sdk模块重命名s3对象

    是否可以通过重命名 s3 上的对象aws sdk https www npmjs com package aws sdk 我找不到解决方法 也许有一个临时解决方案 我想我会回答 因为没有人回答过 这个应该有用 create a new s3
  • 如何将对象数组传递给jade模板?

    我想将一组对象从 mongodb 传递到客户端 这是物体 var objeto img name name of the file image image jpg url title title of the image caption d
  • 通过pm2运行node.js,但经常重新启动:通过信号[SIGINT]以代码[0]退出

    我试图在我的系统上运行 node js 但遇到了这个问题 2016 06 01 20 46 28 App app with id 13 and pid 12633 exited with code 0 via signal SIGINT 2
  • 限制可选 DOM 复选框

    我试图限制用户可以选择的复选框数量 这些复选框是为数组中的每个项目生成的 DOM 输入对象 我目前对此没有运气 因此非常感谢任何帮助 谢谢 在这里小提琴 http jsfiddle net vVxM2 222 http jsfiddle n
  • 当尝试将 formData 发送到 Express js 时,服务器无法识别 multipart/form-data

    我正在尝试将表单数据上传到快递服务器 在我的 Express js 服务器上 我有以下内容 router post uploads id function req res res send req body const title req
  • Nodejs - 检查隐藏文件

    我正在迭代文件目录 想知道是否可以测试文件是否隐藏 目前 我只是检查文件是否以 开头或不 这适用于 Mac 也许还有 Linux 但是 我想知道如何在 Windows 上做到这一点 另外 句点会在所有版本的 Linux 中隐藏该文件吗 Th
  • 从节点服务器访问 Google Calendar API

    由于某种原因 我很难访问 Google 日历 我希望能够在 Node js 服务器的日历中添加和删除事件 我从文件中发现了非常矛盾的信息 我跟着 https developers google com identity protocols
  • Node npm 包抛出使用严格:全局发布和安装后未找到命令

    我正在尝试发布 npm 包 当我全局安装该包并尝试运行 cli 命令时 我收到此错误 nvm versions node v0 12 2 bin myPack line 1 use strict command not found nvm

随机推荐

  • Objective-C 中的标记指针

    While 回答这个问题 https stackoverflow com a 20362087 115200我注意到现代 Objective C 运行时使用标记指针 这迈克 阿什 Mike Ash 的文章及其评论 http www mike
  • Linux下的Topshelf和.net core

    我有一个简单的应用程序 它使用 topshelf 作为服务启动 它看起来很简单 HostFactory Run x gt x Service
  • 在 Azure 逻辑应用中执行存储过程 - 错误网关错误

    当我从逻辑应用设计器执行存储过程时 出现严重的网关错误 我试图调用的存储过程 create procedure test as select from testable 测试表包含 100000 多行 存储过程的结果放置在Blob FTP中
  • 将宏参数传递给其他宏

    我是生锈新手 我正在尝试创建宏 它需要一个缓冲区 然后从中解码一些数据并创建给定的变量列表 如果发生错误 那么它应该打印错误并继续 因为我将在接收缓冲区的循环中调用它 像这样的东西 for bin ref in bufs extract b
  • 使用 PHP 进行正则表达式电话号码验证

    这是关于我之前提出的问题的另一个问题昨天 https stackoverflow com questions 18094180 ignore entered text after a certain length php jquery se
  • 如何在 Swift 中查找列表项的索引?

    我正在尝试寻找一个item index通过搜索list 有人知道该怎么做吗 我看到有list StartIndex and list EndIndex但我想要类似 python 的东西list index text 由于 swift 在某些
  • Spring Data cassandra 存储库上的插入和保存性能缓慢

    我正在尝试使用 spring 将 1500 条记录插入 cassandra 中 我有一个 POJO 列表 其中包含这 1500 条记录 当我调用 saveAll 或插入此数据时 需要 30 秒才能完成此操作 有人可以建议一种方法让我更快地完
  • start() 已经被调用。第二次调用将被忽略。

    在调用 start 后 在组件 StandardEngine Catalina StandardHost localhost StandardContext Account 上调用 start 方法 第二次调用将被忽略 请帮助我解决这些错误
  • 为什么 pandas df.loc + lambda 不起作用?

    I have created pandas frame from csv file And I want to select rows use lambda But it does not work I use this pandas ma
  • 无法运行程序“...”错误=2,没有这样的文件或目录(java)

    我正在尝试制作一个 java 程序来在我的 macbook 上建立 SSH 连接 它提示我输入用户名 然后是 IP 地址 然后应该执行 ssh username ip 下面是我的代码 import java io BufferedReade
  • 使用 Selenium 时如何选择要启用的 Chrome 扩展程序 [重复]

    这个问题在这里已经有答案了 我正在使用 Selenium Web 驱动程序使用 Chrome 作为浏览器来开发自动化测试 我为此使用Python 我的 Chrome 浏览器上有一个扩展 我希望在 Selenium 打开 Chrome 时启用
  • 如何实现推荐引擎?

    请耐心等待我的写作 因为我的英语不熟练 作为一名程序员 我想了解在推荐系统或相关系统下实现的算法或机器学习智能 例如 最明显的例子来自亚马逊 他们有一个非常好的推荐系统 他们会知道 如果你愿意this 你可能还喜欢that 或者其他类似的东
  • 将 DB 变量中的字节值加载到 16 位寄存器中(符号或零扩展字节)

    我正在使用 MASM 编译器和 DOSBOX 我想将变量的值保存到寄存器中 我想保存num1值转化为cx登记 我怎样才能做到这一点 MODEL SMALL STACK 50H DATA num1 db 5 NL DB 0DH 0AH msg
  • 为什么我们需要 Android 中的服务?音乐播放也可以通过后台线程来完成

    我在一次采访中被问到这个问题 我不确定这是否是问这个问题的正确论坛 因为它不涉及任何代码 而是对 android 概念的理解 问题是 当一切都可以通过 Android 中的后台线程完成时 为什么我们还需要服务 Service运行在主线程中
  • h:commandlink 中的 target="_blank" 未在浏览器的新选项卡中打开页面

    当 h commandLink 与 target blank 一起使用时 我的 h commandLink 正在同一页面 窗口上打开 预览 pdf 文档 我希望它在浏览器的新选项卡中打开 错误可能出在哪里 Preview xhtml代码
  • 将数组的 var_dump 转换回数组变量

    直到今天我才真正考虑过这个问题 但在网上搜索后我并没有真正找到任何东西 也许我在搜索中的措辞不正确 给定一个数组 多维或非多维 data array this gt array is gt the challenge gt array fo
  • 从 JavaScript 更改 href 值

    我在 JsFiddle 中有这个例子 http jsfiddle net PtNfD 114 http jsfiddle net PtNfD 114 a href http www yahoo com target blank Yahoo
  • 非英语文本的情感分析

    我想分析用德语写的文本的情感 我找到了很多关于如何用英语做到这一点的教程 但我没有找到关于如何将其应用到不同语言的教程 我有一个想法使用TextBlobPython 库首先将句子翻译成英语 然后进行情感分析 但我不确定这是否是解决此任务的最
  • 简而言之,关于 Func<> 可以说些什么

    我一直看到功能一段时间以来 我已经设法避免它 暂时 但现在看来 我是无法永远躲开了 例如 我尝试了 Dynamic Linq 但几乎所有内容都是根据 Func 进行的 我已经尝试过我的一本书 C 2008 Deitel Deitel 以及
  • WSH(wscript)是否可以与nodejs结合

    作为 QA 我使用 WSH 脚本在 IE 中进行自动上传 部署和一些 Web 测试 使用 JavaScript 的 WSH wscript 可以打开 IE 窗口 激活它并访问 DOM 模型来执行某些操作或验证某些预期结果 它是一种 Sele