Спектрон с использованием мокко не работает как положено - PullRequest
0 голосов
/ 28 декабря 2018

Я написал один тестовый пример входа в систему для своего электронного приложения, используя mocha через Spectron Tool.

У меня возникают следующие проблемы.

  1. Иногда мой скрипт работает совершенно нормально, и яЯ могу передать имя пользователя и пароль в веб-элементы, и выполняется вход в систему.
  2. Иногда я могу видеть тестовые случаи как пройденные, но значения не передаются в веб-элементы имени пользователя и пароля.
  3. Однажды я попытался очистить свои системные временные файлы и выполнил команду «npm test» и скрипт был выполнен правильно, но на следующий день снова столкнулся с той же проблемой, что и упоминание в пункте №.2.

Не могли бы вы, ребята, помочь мне, как это можно исправить или если отсутствует какой-либо требуемый пакет.

Мой файл package.json

{
  "name": "new_spectron_module",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "directories": {
    "test": "test"
  },
  "dependencies": {
    "npm": "^6.5.0",
    "npm-check-updates": "^2.15.0",
    "spectron": "^5.0.0"
  },
  "devDependencies": {
    "body-parser": "^1.18.3",
    "cookie-parser": "^1.4.3",
    "debug": "^4.1.0",
    "electron": "^4.0.0",
    "electroner": "^4.0.7",
    "express": "^4.16.4",
    "jade": "^1.11.0",
    "mocha": "^5.2.0",
    "morgan": "^1.9.1",
    "serve-favicon": "^2.5.0",
    "spectron-keys": "0.0.1",
    "stylus": "^0.54.5",
    "webdriverio": "^4.14.1"
  },
  "scripts": {
    "test": "mocha"
  },
  "author": "",
  "license": "ISC"
}

Мой файл spec.js

var assert = require('assert');
var Application = require('spectron').Application
describe('Test Suite 1', function () {
    this.timeout(500000)
    beforeEach(function () {
        this.app = new Application({
            path: 'C:/Users/Admin/AppData/Local/Programs/Tradovate Trader Devel/Tradovate Trader Devel.exe'
        })

        return this.app.start()        
    })
    /*afterEach(function () {
        if (this.app && this.app.isRunning()) {
            return this.app.stop()            
        }
    })*/

  it('Login', function () {
        this.app.client.debug();
        var txtUserName = this.app.client.element('//*[@id="content"]/div/div[2]/div/div[2]/div[1]/div[1]/div/input');
        var txtPassword = this.app.client.element('//*[@id="content"]/div/div[2]/div/div[2]/div[1]/div[2]/div/input');


        var btnSignIn = this.app.client.element('//*[@id="content"]/div/div[2]/div/div[2]/div[2]/div[1]/button');
        //var accClick = this.app.client.element('//div[@class="pane account-selector dropdown"]//div[@class="caret"]');
        //var logoutLink = this.app.client.element('//*[@id="content"]/div/div[1]/div[5]/div/ul/li[3]/a');
        txtUserName.setValue('Clarion_19');        
        //thread.sleep(2000);
        txtPassword.setValue('19Passw0rd$');     

        //click on signin button
        btnSignIn.click();

        //await accClick.click();

        //logoutLink.click();
        //console.log(btnSignIn.hasFocus()); 

    })
})

1 Ответ

0 голосов
/ 01 января 2019

Вы пытались сначала запустить "npm install"?

...