Интерактивное тестирование Protractor

Я пытаюсь запустить транспортир в интерактивном режиме, чтобы проверить элементы

Я запускаю сервер селена

wedriver-manager start

Затем я иду в корневой каталог транспортира

C:\Users\Name\AppData\Roaming\npm\node_modules\protractor

и введите следующую команду

"./bin/elementexplorer.js" http://some_server/someApp

Я получаю следующие ошибки

Script
Line : 1
Char : 1
Error : Invalid Character
Code : 800A03F6
Source : MS JScript compliation error

В строке elementexplorer.js находится следующая строка

#!/usr/bin/env node

person Anand    schedule 27.01.2014    source источник


Ответы (3)


У меня тоже была эта пробема. После того, как вы войдете в корневой каталог транспортира, попробуйте ввести команду

node bin\elementexplorer.js http://some_server/someApp

Убедитесь, что команда node находится в вашей переменной среды PATH, чтобы она распознавалась как допустимая команда. Узел #!/usr/bin/env обычно встречается в системах на основе Unix, поэтому в этом случае вам нужно поставить «узел» впереди, чтобы указать Windows использовать Node.js.

person David    schedule 03.02.2014
comment
Спасибо. Это имеет смысл. Меня также смутили эти команды unix в файле сценария. У меня очень мало (или нет) знаний о Node.js - person Anand; 04.02.2014
comment
Нет проблем, рад, что смог помочь! - person David; 04.02.2014
comment
+1 Спасибо!. Это должно быть добавлено в документацию Protractor. - person Amit Verma; 02.06.2014

попробуйте оставить путь в кавычках

person Kieran Ryan    schedule 31.01.2014

https://github.com/angular/protractor/issues/4307#issuecomment-488470306

узел 10+ с repl-await (так что вы можете просто ждать в консоли)

Специальная интерактивная спецификация отладки —interactive.e2e.ts

import { LoginPage } from './src/pages/login.po';
import { AppPage } from './src/pages/app.po';
import { SwitchProfileSideSheet } from './src/side-sheets/switch-profile-side-sheet.po';
import { sel } from '../src/testing/get-component';

const login = new LoginPage();
const app = new AppPage();
const switchProfileSideSheet = new SwitchProfileSideSheet();

// add my own page objects to the global object so I can use them interactively.
global['sel'] = sel;
global['po'] = {
  login,
  app,
  switchProfileSideSheet,
};

(global as any).systemTestsDone = new Promise(function(_resolve, _reject) {
  global['finishInteractiveDebug'] = _resolve;
});

describe('TestHelper', () => {
  it('should provide a way to interactively run tests', async () => {
    await (global as any).systemTestsDone;
  });
});

пакет.json

"e2e-interactive": "node --experimental-repl-await --inspect-brk ./node_modules/.bin/protractor ./e2e/protractor.interactive.conf",

транспортир.interactive.conf.js

// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts

// standard protractor config
const baseConfig = require('./protractor.conf');
const configCopy = Object.assign({}, baseConfig.config);

const oneDayInMilliSeconds = 1000 * 60 * 60 * 24;
// set timeout to a huge number
// so it's not an issue when we pause in the debugger
configCopy.allScriptsTimeout = oneDayInMilliSeconds;
configCopy.jasmineNodeOpts.defaultTimeoutInterval = oneDayInMilliSeconds;
// just load our interactive specs
configCopy.specs = ['./interactive.e2e.ts'];

console.log('interactive config', configCopy);
exports.config = configCopy;

теперь, я думаю, вы просто набираете await element.all($('a')).get(0).getText() в консоли, чтобы получить текст первого элемента привязки. мне все еще нужно проверить это, вернуться и исправить свой ответ

person activedecay    schedule 17.09.2020