Hello,
I am trying to get the “getting started” test to work as described here: https://appium.io/docs/en/about-appium/getting-started/index.html
I have appium
setup and here is my appium-doctor --android
output:
info AppiumDoctor Appium Doctor v.1.10.0
info AppiumDoctor ### Diagnostic for necessary dependencies starting ###
info AppiumDoctor ✔ The Node.js binary was found at: /usr/bin/node
info AppiumDoctor ✔ Node version is 8.10.0
info AppiumDoctor ✔ ANDROID_HOME is set to: /home/calvin/Android/Sdk
info AppiumDoctor ✔ JAVA_HOME is set to: /usr/lib/jvm/java-8-openjdk-amd64
info AppiumDoctor ✔ adb exists at: /home/calvin/Android/Sdk/platform-tools/adb
info AppiumDoctor ✔ android exists at: /home/calvin/Android/Sdk/tools/android
info AppiumDoctor ✔ emulator exists at: /home/calvin/Android/Sdk/tools/emulator
info AppiumDoctor ✔ Bin directory of $JAVA_HOME is set
info AppiumDoctor ### Diagnostic for necessary dependencies completed, no fix needed. ###
info AppiumDoctor
info AppiumDoctor ### Diagnostic for optional dependencies starting ###
info AppiumDoctor ✔ Python required by node-gyp (used by heapdump) is installed at: /usr/bin/python. Installed version is: 2.7.15
WARN AppiumDoctor ✖ opencv4nodejs cannot be found.
info AppiumDoctor ✔ ffmpeg is installed at: /usr/bin/ffmpeg. ffmpeg version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 the FFmpeg developers
WARN AppiumDoctor ✖ mjpeg-consumer cannot be found.
WARN AppiumDoctor ✖ bundletool.jar cannot be found
info AppiumDoctor ### Diagnostic for optional dependencies completed, 3 fixes possible. ###
info AppiumDoctor
info AppiumDoctor ### Optional Manual Fixes ###
info AppiumDoctor The configuration can install optionally. Please do the following manually:
WARN AppiumDoctor ➜ Why opencv4nodejs is needed and how to install it: https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/image-comparison.md
WARN AppiumDoctor ➜ mjpeg-consumer module is required to use MJPEG-over-HTTP features. Please install it with `npm i -g mjpeg-consumer`.
WARN AppiumDoctor ➜ bundletool.jar is used to handle Android App Bundle. Please read http://appium.io/docs/en/writing-running-appium/android/android-appbundle/ to install it
info AppiumDoctor
info AppiumDoctor ###
info AppiumDoctor
info AppiumDoctor Bye! Run appium-doctor again when all manual fixes have been applied!
info AppiumDoctor
That seems to suggest I am okay to go.
I started appium
on a terminal:
[Appium] Welcome to Appium v1.13.0
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
I have the test APK (https://github.com/appium/appium/raw/master/sample-code/apps/ApiDemos-debug.apk) downloaded.
Here is my test.js
file:
const wdio = require("webdriverio");
const opts = {
port: 4723,
capabilities: {
platformName: "Android",
platformVersion: "8.0",
deviceName: "Android Emulator",
app: "/home/calvin/Downloads/ApiDemos-debug.apk",
automationName: "UiAutomator2"
}
};
const client = wdio.remote(opts);
describe('Doing a hello world', function () {
it('should do a hello world spin', async function () {
const field = await client.$("~TextField1");
await field.setValue("Hello World!");
const value = await field.getValue();
assert.equal(value,"Hello World!");
});
});
It says "Simply save it and execute it using node
".
I ran it using $(npm bin)/mocha test.js
2019-06-27T07:11:47.498Z INFO webdriver: [POST] http://localhost:4723/wd/hub/session
2019-06-27T07:11:47.500Z INFO webdriver: DATA { capabilities:
{ alwaysMatch:
{ platformName: 'Android',
platformVersion: '8.0',
deviceName: 'Android Emulator',
app: '/home/calvin/Downloads/ApiDemos-debug.apk',
automationName: 'UiAutomator2' },
firstMatch: [ {} ] },
desiredCapabilities:
{ platformName: 'Android',
platformVersion: '8.0',
deviceName: 'Android Emulator',
app: '/home/calvin/Downloads/ApiDemos-debug.apk',
automationName: 'UiAutomator2' } }
Doing a hello world
1) should do a hello world spin
0 passing (26ms)
1 failing
1) Doing a hello world
should do a hello world spin:
TypeError: client.$ is not a function
at Context.<anonymous> (test.js:24:32)
Any help on how to get this first test passing? Running that opens up the app on the Android emulator.