Electron 如何使用spectron与电子应用程序的控件交互
我的项目是使用电子框架。开发人员进行了构建,并给了我一个electron exe。当您打开exe时,它会显示一个登录表单,它是我的应用程序的入口点。表单基本上有3个控件:用户名和密码文本框以及“登录”按钮。现在,我必须在该页面上执行功能测试 我的要求是在用户名和密码文本框中输入一些文本,然后单击提交按钮。(在本例中,假设是成功登录。)登录后,我会看到一条欢迎消息,我必须对其进行测试 如何从electron应用程序中获取文本框并提交按钮引用,以及如何对其执行操作 我已经尝试了下面的代码。它打开我的electron exe,但不执行任何操作,测试用例通过Electron 如何使用spectron与电子应用程序的控件交互,electron,spectron,Electron,Spectron,我的项目是使用电子框架。开发人员进行了构建,并给了我一个electron exe。当您打开exe时,它会显示一个登录表单,它是我的应用程序的入口点。表单基本上有3个控件:用户名和密码文本框以及“登录”按钮。现在,我必须在该页面上执行功能测试 我的要求是在用户名和密码文本框中输入一些文本,然后单击提交按钮。(在本例中,假设是成功登录。)登录后,我会看到一条欢迎消息,我必须对其进行测试 如何从electron应用程序中获取文本框并提交按钮引用,以及如何对其执行操作 我已经尝试了下面的代码。它打开我的
var assert = require('assert');
var Application = require('spectron').Application
describe('Test Suite 1', function () {
this.timeout(100000)
beforeEach(function () {
this.app = new Application({
path: '/CorumDispense-win32-ia32/CorumDispense.exe'
})
return this.app.start()
})
/*afterEach(function () {
if (this.app && this.app.isRunning()) {
return this.app.stop()
}
})*/
it('Login Dispense', function () {
var txtUserName = this.app.client.elementIdText('inpuUsername3');
var txtPassword = this.app.client.elementIdText('inputPassword3');
var btnSignIn = this.app.client.element('//button/*[text(),Sign in]');
txtUserName.keys('Bharat');
txtPassword.keys('Bharat');
//click on signin button
btnSignIn.click();
})
})
输出显示测试用例已经通过,但是我没有看到在用户名字段或密码字段中键入任何文本,并且按钮没有被单击
Test Name: Test Suite 1 Login Dispense
Test Outcome: Passed
Result StandardOutput:
mocha.json options file not found. Using default values: { ui: 'tdd', reporter: 'tap', timeout: 2000 }
1..1
ok 1 Test Suite 1 Login Dispense
# tests 1
# pass 1
# fail 0
My package.json
{
"name": "lighthouse",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"description": "Lighthouse",
"author": {
"name": "bpappu"
},
"dependencies": {
"body-parser": "~1.8.1",
"cookie-parser": "~1.3.3",
"debug": "~2.0.0",
"express": "~4.9.0",
"jade": "~1.6.0",
"morgan": "~1.3.0",
"serve-favicon": "~2.1.3",
"spectron": "^3.4.0",
"stylus": "0.42.3"
},
"devDependencies": {
"chai": "^3.5.0",
"electron": "^1.4.6",
"electroner": "^4.0.2",
"mocha": "^3.1.2",
"spectron": "^3.4.0",
"spectron-keys": "0.0.1"
}
}
我已经解决了这个问题。问题似乎在于应用程序中打开的开发人员工具。这导致了我无法获取控件的问题。一旦开发人员关闭了“开发人员工具”选项重新打包应用程序,上述代码就可以正常工作