0

我必须测试原生 android 应用程序,测试用 js 编写。我找不到这个概念的工作示例。

import { AndroidDriver } from "appium-android-driver"

这个导入引发了很多错误,我正在寻找一个提示 - 工作简单的项目。

4

3 回答 3

0

不需要 wd,因为它是从“nativescript-dev-appium”自动导入的

看起来您正在使用打字稿。这是一个打字稿解决方案:

import { AppiumDriver, createDriver, SearchOptions, 
         Direction, nsCapabilities } from "nativescript-dev-appium";
import { assert } from "chai";
const addContext = require('mochawesome/addContext');

然后在同一个文件中实例化一个驱动程序实例并使用该实例:

describe('My Suite', () => {
  let driver: AppiumDriver

  before(async () => {
    // Wait for the driver instance to be created
    driver = await createDriver()
  })

  after(async () => {
    // Destroy the driver instance
    await driver.quit()
  })

  it('validates something', async () => {
    // write your test in here
  })
})

这里获取一些很棒的文档

于 2019-12-02T00:29:21.943 回答
0

您可以使用wd.js作为 Appium 的 Node.js 客户端:

考虑到您熟悉async/await概念,代码可能如下所示:

const wd = require('wd')

const serverConfig = {
  host: 'localhost',
  port: 4723
}
const desired = {
  platformName: 'Android',
  deviceName: 'Android Emulator',
  appWaitActivity: <activity to wait>,
  appWaitPackage: <app package name>,
  androidInstallTimeout: 90000,
  app: <path to app>
}

const driver = wd.promiseChainRemote(serverConfig)

await driver.init(desired)
await driver.setImplicitWaitTimeout(5000)
await driver.elementById('el_id').click()
于 2018-01-06T15:44:42.517 回答
0

这种导入方式适用于最新版本的 Node JS。确保您使用的是最新版本。另一种解决方法是使用传统方式

var AndroidDriver = require('appium-android-driver').AndroidDriver;

希望这可以帮助。

于 2018-01-04T22:36:16.167 回答