JavaScript 为 windows 应用程序自动化实施 winium
JavaScript implementation of winium for windows application automation
我需要使用带有 JavaScript 的 winium 编写 windows 应用程序自动化脚本。我已经使用 Java 完成此操作,因为有很多帮助,material 可供参考。但是我需要在 JavaScript 中做同样的事情,我不知道 JavaScript 绑定中 winium 的等效 API。
约束低于 -
首选工具 - winium
选择的语言 - Java脚本
应用程序 - 任何 Windows 类应用程序。记事本
这就是我如何使用 JS (selenium + winium.desktop.driver) 实现的。希望这会有用。
- 在端口(默认 9999)上保留 Winium.Desktop.Driver 实例 运行,并在构建服务时在功能中使用相同的地址。
- 使用构建器 API.
在 winium 服务器上创建 selenium 实例
- 使用 winium 中的默认 APIs 与 windows 应用程序交互。
注意: 如果出现以下错误,请考虑将 selenium-webdriver 降级到 2.45.0。
错误 - UnsupportedOperationError: 'css selector' 无效或未实施搜索策略。
代码片段 :
"use strict";
const {Builder, By, Key, until} = require('selenium-webdriver');
(async function example() {
let driver = await new Builder().usingServer('http://localhost:9999')
.withCapabilities({
"app": "C:\WINDOWS\system32\notepad.exe",
"platformName": "Windows",
"deviceName": "WindowsPC"
})
.forBrowser('windows')
.build();
try {
await sleep(2000).then(function(){});
await driver.findElement(By.name('Text Editor')).sendKeys('123');
}
finally {
console.log('Killed..');
await driver.quit();
}
})();
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
我需要使用带有 JavaScript 的 winium 编写 windows 应用程序自动化脚本。我已经使用 Java 完成此操作,因为有很多帮助,material 可供参考。但是我需要在 JavaScript 中做同样的事情,我不知道 JavaScript 绑定中 winium 的等效 API。
约束低于 -
首选工具 - winium
选择的语言 - Java脚本
应用程序 - 任何 Windows 类应用程序。记事本
这就是我如何使用 JS (selenium + winium.desktop.driver) 实现的。希望这会有用。
- 在端口(默认 9999)上保留 Winium.Desktop.Driver 实例 运行,并在构建服务时在功能中使用相同的地址。
- 使用构建器 API. 在 winium 服务器上创建 selenium 实例
- 使用 winium 中的默认 APIs 与 windows 应用程序交互。
注意: 如果出现以下错误,请考虑将 selenium-webdriver 降级到 2.45.0。
错误 - UnsupportedOperationError: 'css selector' 无效或未实施搜索策略。
代码片段 :
"use strict";
const {Builder, By, Key, until} = require('selenium-webdriver');
(async function example() {
let driver = await new Builder().usingServer('http://localhost:9999')
.withCapabilities({
"app": "C:\WINDOWS\system32\notepad.exe",
"platformName": "Windows",
"deviceName": "WindowsPC"
})
.forBrowser('windows')
.build();
try {
await sleep(2000).then(function(){});
await driver.findElement(By.name('Text Editor')).sendKeys('123');
}
finally {
console.log('Killed..');
await driver.quit();
}
})();
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}