Прежде всего, я довольно новичок в тестировании 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.
Если кто-нибудь может помочь, это было бы здорово!Спасибо!