оценивать выражение в Intellij транспортир - не выполняет никаких задач в браузере. Обещание связано? - PullRequest
0 голосов
/ 17 января 2019

Попробуйте запустить следующие коды в Intellij:

it('Sales Force Test',  function(){
    browser.get(obj.URL_SF_UAT);
    browser.sleep(5000).then( function(){
            obj.username.sendKeys("arijit.chowdhury@xxxx")        
      *     obj.password.sendKeys("xxx");

Поставить точку останова на последней строке. Запустите скрипт в режиме отладки. Фактический результат: драйвер открывает браузер и загружает URL (строка 2 кодов) и останавливается. Ожидание: поскольку точка останова добавлена ​​в последней строке, я ожидаю, что "obj.username.sendKeys (" arijit.chowdhury@xxxx ");" чтобы казнить, а также. Но это не выполняется. Любая причина?

Кроме того, я попробовал выражение оценки для "obj.username.sendKeys (" arijit.chowdhury@xxxx "); Но в браузере не выполняется никаких действий. Как оценить выражение для транспортира в Intellij?

Любая помощь будет высоко ценится.

С уважением, Arijit

1 Ответ

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

Таким образом, это объяснит, почему ваша точка останова не работает (https://youtu.be/6aPfHrSl0Qk?t=1051). В основном Protractor помещает в очередь обещания в потоке управления и выполняется после завершения вашего блока it.

Отладчик, работающий с отключенным потоком управления

Как это исправить, используйте следует использовать async / await, добавив SELENIUM_PROMISE_MANAGER: false, в ваш файл конфигурации. Затем вы будете использовать async / await в своем тесте и следовать инструкциям в видео ng-conf на YouTube. В основном вам нужно будет использовать node --inspect-brk ./node_modules/.bin/protractor conf.js, где conf - это ваш файл конфигурации Protractor.

it('Sales Force Test',  async () => {
    await browser.get(obj.URL_SF_UAT);
    await browser.sleep(5000);
    await obj.username.sendKeys("arijit.chowdhury@xxxx");
    debugger;   
  * await obj.password.sendKeys("xxx");

Возможное быстрое исправление вашего блока it (без отладчика)

Также вы можете заметить, что предыдущий тест может работать не так, как ожидалось. Чтобы исправить это не используя асинхронное ожидание. Я бы сделал:

it('Sales Force Test',  () => {
    browser.get(obj.URL_SF_UAT);
    // this thenable statement is not needed, jasminewd should await this
    // however the break points will not work.
    browser.sleep(5000).then(() => {
      return obj.username.sendKeys("arijit.chowdhury@xxxx").then(() => {
        return obj.password.sendKeys("xxx");
      });
    });
...