如何使用 WinAppDriver 和 Node 输入文本?
Posted
技术标签:
【中文标题】如何使用 WinAppDriver 和 Node 输入文本?【英文标题】:How to type text with WinAppDriver and Node? 【发布时间】:2021-10-14 17:10:51 【问题描述】:这是我的代码:
import spawn from 'child_process';
import dirname from 'path';
import WindowsDriver from 'appium-windows-driver';
async function main()
const program = "C:\\Program Files (x86)\\Windows Application Driver\\WinAppDriver.exe";
spawn(program, null, cwd: dirname(program) );
const driver = new WindowsDriver();
await driver.createSession(
app: 'C:\\Windows\\System32\\notepad.exe',
deviceName: 'WindowsPC',
platformName: 'Windows'
);
let element = await driver.findElement('xpath', '//*[@ClassName="Edit"]');
await element.type('Some text here...');
await driver.deleteSession();
process.exit();
await main();
这是我的依赖项,也许我错过了安装一些东西?
"dependencies":
"appium-windows-driver": "^1.19.0"
我不明白为什么会有这个 TypeError:
TypeError: element.type is not a function
【问题讨论】:
【参考方案1】:最后,我找到了方法。 但是使用 selenium-appium 和 selenium-webdriver 包。
import dirname from 'path';
import spawn from 'child_process';
import driver, By2, windowsAppDriverCapabilities from 'selenium-appium'
import Key from 'selenium-webdriver';
async function main()
const program = 'C:/Program Files (x86)/Windows Application Driver/WinAppDriver.exe';
spawn(program, [], cwd: dirname(program) );
const appExe = 'C:/Windows/System32/notepad.exe';
await driver.startWithCapabilities(windowsAppDriverCapabilities(appExe));
const element = By2.nativeXpath('//*[@ClassName="Edit"]');
await element.click();
await element.sendKeys('Some text here...');
await element.sendKeys(Key.CONTROL, 'a');
await element.sendKeys(Key.DELETE);
await driver.quit();
process.exit();
await main();
【讨论】:
以上是关于如何使用 WinAppDriver 和 Node 输入文本?的主要内容,如果未能解决你的问题,请参考以下文章
我们可以使用“WinAppDriver”自动化Slack和Trello窗口存储应用程序吗?