使用节点appium-xcuitest-driver测试ios app

时间:2018-03-28 21:58:13

标签: ios node.js react-native appium functional-testing

const { XCUITestDriver } = require('appium-xcuitest-driver');

const automationConfig = {
    platformName: 'iOS',
    platformVersion: '11.2',
    deviceName: 'iPhone 7',
    app: __dirname + '/cameo.app',
    bundleId: 'com.app.myapp',
};

const driver = new XCUITestDriver();

driver.createSession(automationConfig)
    .then(() => {
        //WHAT DO I DO NOW??
    })

以上代码打开iOS模拟器,下载我的应用程序并打开它。如何找到元素并单击它?

如果我driver.findElement(By.xpath("//whatever-xpath")),它会告诉我By未定义。但By中未包含driver。我查看了appium文档,但API指南仍然是TODO>:|

我是否需要导入另一个模块来帮助解决这个问题?

在广泛的Google搜索之后,我无法找到任何有用的代码示例。

1 个答案:

答案 0 :(得分:2)

如果您想使用appium-xcuitest-driver进行e2e测试,那么使用wd.js包装更好更容易:

const wd = require('wd')

desired = {
  platformName: 'iOS',
  platformVersion: '11.1',
  deviceName: 'iPhone SE',
  automationName: 'XCUITest',
  app: <path to app>
}
const server = {
  host: 'localhost',
  port: 4723
}
const driver = wd.promiseChainRemote(server)
await driver.init(desired)
const el1 = await driver.elementByAccessibilityId(<Valid Accessibility Identifier>)
const el2 = await driver.elementsByXPath(<Valid Xpath>)

另一点:它用于appium-xcuitest-driver repo

中的功能测试

在运行测试之前启动appium服务非常重要:

  • 安装appium:npm install -g appium
  • 使用简单命令appium
  • 启动服务