У меня есть ионное приложение.Я хочу написать тест автоматизации для этого приложения.В настоящее время я пишу тесты для Android.Для этого я использую Appium server WD в качестве клиентской библиотеки
И я пишу тесты в nodejs
Я написал код ниже, чтобы проверить свою страницу входа в систему, просто ввести адрес электронной почты в поле электронной почты
"use strict";
require("./helpers/setup");
var wd = require("wd"),
_ = require('underscore'),
serverConfigs = require('./helpers/appium-servers');
describe("android simple", function () {
this.timeout(300000);
var driver;
var allPassed = true;
before(function () {
var serverConfig = serverConfigs.local;
driver = wd.promiseChainRemote(serverConfig);
var desired = _.clone(require("./helpers/caps").android19);
desired.app = require("./helpers/apps").androidApiDemos;
return driver
.init(desired)
.setImplicitWaitTimeout(3000);
});
afterEach(function () {
allPassed = allPassed && this.currentTest.state === 'passed';
return driver.quit();
});
it("should insert email and password", async function () {
let contextNames = await driver.contexts();
await driver.context(contextNames[1]);
await driver.element("id", "email").type("hello@mailinator.com")
});
});
Когда я запускаю этот тест.Я получаю сообщение об ошибке ниже
Ошибка: [element.type ("hello@mailinator.com")] Состояние ответа об ошибке: 60 Ошибка селена: элемент не взаимодействует
И этот элемент не доступен только для чтения или отключен.
Я уже пытался добавить setImplicitWaitTimeout, но ничего не работает.
Есть одна вещь, если я сначала получу элемент, а затем нажму на него и после этогополучить активный элемент, а затем введите в него.Это будет работать некоторое время, но не всегда.