waitForElement Не JSON Response, при попытке получить доступ к элементу кнопки - PullRequest
0 голосов
/ 02 апреля 2019

Прежде всего, я довольно новичок в тестировании NativeScript и e2e, но я пытаюсь запустить несколько простых тестов в моем демонстрационном приложении.Я сделал всю настройку, где установил все, и была создана папка e2e (по умолчанию) + файлы.

У меня есть этот макет демонстрационного приложения, где у меня в основном одна кнопка:

<ActionBar title="My App" class="action-bar">
</ActionBar>

<GridLayout class="page">
     <StackLayout>
        <Button automationText="testButton" text="Button"></Button>
     </StackLayout>
</GridLayout>

Этимои тесты:

import { AppiumDriver, createDriver, SearchOptions } from "nativescript-dev-appium";
import { assert } from "chai";

describe("sample scenario", () => {
    const defaultWaitTime = 5000;
    let driver: AppiumDriver;

    before(async () => {
        driver = await createDriver();
    });

    after(async () => {
        await driver.quit();
        console.log("Quit driver!");
    });

    afterEach(async function () {
        if (this.currentTest.state === "failed") {
           // await driver.logTestArtifacts(this.currentTest.title);
        }
    });

    it("should find an element by text", async () => {
        const btn = await driver.findElementByText("Button");
        assert.isTrue(btn.exists());
    });

    it("should find an element by automation text", async () => {
         const btn = await driver.findElementByAutomationText("testButton");
         assert.isTrue(btn.exists());
    });
});

Мне пришлось бы прокомментировать эту строку, иначе мои тесты не закончились бы (мне пришлось вручную остановить их с помощью ctrl C):

// await driver.logTestArtifacts(this.currentTest.title);

Iя запускаю его с:

$ npm build ios
$ npm run e2e -- --runType sim.iPhone6

Я могу запустить глупые тесты, assertTrue (true), но когда я пытаюсь получить доступ к элементу, кнопке, все идет не так:

    should find an element by text:
 [waitForElementByXPath("//*[@label='Button' or @value='Button' or @hint='Button']",5000)] [elements("xpath","//*[@label='Button' or @value='Button' or @hint='Button']")] Not JSON response
  Error: [elements("xpath","//*[@label='Button' or @value='Button' or @hint='Button']")] Not JSON response
  at exports.newError (node_modules/wd/lib/utils.js:151:13)

И:

 should find an element by automation text:
 [waitForElementByAccessibilityId("testButton",5000)] [elements("accessibility id","testButton")] Not JSON response
  Error: [elements("accessibility id","testButton")] Not JSON response
  at exports.newError (node_modules/wd/lib/utils.js:151:13)

Я также пытался проверить, был ли драйвер просто пуст или что-то в этом роде, но isIOS и isAndroid работают нормально.

Я не знаю, имеет ли это какое-то отношение к этому, но при уничтожении драйвера также появляется эта ошибка:

Error: [quit()] Unexpected data in simpleCallback.

Если кто-нибудь может помочь, это было бы здорово!Спасибо!

1 Ответ

0 голосов
/ 02 апреля 2019

Похоже, что аналогичная проблема зарегистрирована в {N} Appium Github repo , проблема, похоже, заключается в настройке среды, по крайней мере, в их случае она не устанавливалась carthage.

Вы прошли процесс установки здесь , убедитесь, что у вас все на месте?

...