Транспортир - не удается получить заголовок URL, веб-драйвер просто зависает - PullRequest
0 голосов
/ 01 ноября 2018

просто начните возиться с Protractor для предстоящего проекта, который может потребовать автоматизации внешнего интерфейса на веб-сайте под углом. После установки Protractor и запуска приведенных примеров, попытался выполнить очень простой тест, например, следующий:

// test.js
describe('Protractor Demo App', function() {
    it('should have a title', function() {
      browser.get('http://www.google.co.uk');
      expect(browser.getTitle()).toEqual('Google');
    });
  }); 

Проблема в том, что браузер открывается, но затем просто зависает, пока не закроется с ошибкой:

Failures:
1) Protractor Demo App should have a title
  Message:
    Failed: Cannot read property 'ver' of null
  Stack:
    TypeError: Cannot read property 'ver' of null
        at executeAsyncScript_.then (/usr/local/lib/node_modules/protractor/built/browser.js:716:56)
        at ManagedPromise.invokeCallback_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1376:14)
        at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
        at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
        at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2927:27)
        at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
        at process.internalTickCallback (internal/process/next_tick.js:77:7)
    From: Task: Run it("should have a title") in control flow
        at UserContext.<anonymous> (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:94:19)
    From asynchronous test:
    Error
        at Suite.<anonymous> (/Users/rubensantos/Documents/protractor/test.js:3:5)
        at Object.<anonymous> (/Users/rubensantos/Documents/protractor/test.js:2:1)
        at Module._compile (internal/modules/cjs/loader.js:707:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:718:10)
        at Module.load (internal/modules/cjs/loader.js:605:32)
        at tryModuleLoad (internal/modules/cjs/loader.js:544:12)

1 spec, 1 failure
Finished in 4.056 seconds

[11:18:25] I/launcher - 0 instance(s) of WebDriver still running
[11:18:25] I/launcher - chrome #01 failed 1 test(s)
[11:18:25] I/launcher - overall: 1 failed spec(s)
[11:18:25] E/launcher - Process exited with error code 1

понятия не имею, почему этот простой тест не работает. Любая помощь приветствуется, заранее спасибо

1 Ответ

0 голосов
/ 01 ноября 2018

Было бы отличным решением отключить поток управления из-за этой нити . В вашем файле protractor.conf.js добавьте строку SELENIUM_PROMISE_MANAGER: false. После этого вы должны решить Promises самостоятельно. Например, ваш тест будет выглядеть так:

describe('Protractor Demo App', function() {
    it('should have a title', async function() {
      await browser.get('http://www.google.co.uk');
      expect(await browser.getTitle()).toEqual('Google');
    });
  }); 
...