Appium - невозможно ввести текст в поле ввода - PullRequest
0 голосов
/ 08 мая 2019

У меня есть ионное приложение.Я хочу написать тест автоматизации для этого приложения.В настоящее время я пишу тесты для 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, но ничего не работает.

Есть одна вещь, если я сначала получу элемент, а затем нажму на него и после этогополучить активный элемент, а затем введите в него.Это будет работать некоторое время, но не всегда.

...