如何使用 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窗口存储应用程序吗?

Sendkeys 在使用 Appium 的 Winappdriver 中不起作用

使用 winappdriver 最大化桌面窗口无法正常工作

Java:WinAppDriver。请求的操作需要提升

WinAppDriver中的拖放不起作用

uwp UI自动化测试(WinAppDriver)