我有离子应用。我想为此应用程序编写自动化测试。目前,我正在为Android编写测试。 为此,我正在使用 Appium服务器 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,但是没有任何效果。
如果我首先获取元素,然后单击它,然后获取活动元素,然后键入该元素,那是一回事。这会花一些时间,但并非总是如此。