0

Appium 1.4.1 と通信するために WebDirver で Intern JS を使用して、簡単な機能テストを行います。その一部は、iOS アプリのログイン画面でテキスト入力ボックスを見つけ、それをタップして、ユーザーのログイン名を入力する必要があります。

define([
    'intern!object',
    'intern/chai!assert',
    'require'
], function (registerSuite, assert, require) {
    registerSuite({
        name: 'Suite Name',

        'Login Screen': function () {
            return this.remote
                .setFindTimeout(50000)
 .findByXpath("//UIAApplication[1]/UIAWindow[1]/UIAScrollView[1]/UIATextField[1]/UIATextField[1]")
                .tap()
                .type('student1@demo.com')
                .end()
                .then(function (pagetitle) {
                assert.strictEqual(pagetitle, 'DEMO COLLEGE',
                    'Should land on app dashboard with school title displayed');
            });
    }
});
});

intern-runner を使用して実行すると、すべてがうまくいくように見えます。Appium はアプリを起動し、入力を待ちます。しかし、何を試しても、Leadfoot の findByXpath を使用して入力する必要がある要素が見つかりません。

$ intern-runner config=tests/appium
Listening on 0.0.0.0:9000
Starting tunnel...
Initialised iOS on MAC 8.1
Test main - Suite Name - Login Screen FAILED on iOS on MAC 8.1:
NoSuchElement: [POST http://[appium-server-address]:4723/wd/hub/session/80e20453-452e-4181-8713-4f9e0cfa427f/element /     {"using":"xpath","value":"//UIAApplication[1]/UIAWindow[1]/UIAScrollView[1]/UIATextField[1]/UIATextField[1]"}] An element could not be located on the page using   the given search parameters.
  at Server._post      <../../.nvm/v0.10.35/lib/node_modules/intern/node_modules/leadfoot/Server.js:68:9>

Appium の GUI「インスペクター」を使用して、text-input-box 要素への Xpath が次のようになっていることを確認しました。

"//UIAApplication[1]/UIAWindow[1]/UIAScrollView[1]/UIATextField[1]/UIATextField[1]"

誰かが私が間違っているところを提案できますか?

4

1 に答える 1