Я написал некоторые функциональные тесты для the Intern, которые предположительно должны работать на SauceLabs, BrowserStack, TestingBot, или моей собственной сеткой селена.Действительно ли стажер может работать на любом сервисе Selenium?
Тот же код, похоже, не работает на всех сервисах. Сначала я получил функциональные тесты, работающие над SauceLabs, поэтому я использую эту услугу как свою «базу», так сказать.
В браузере, тесты оказались неудачными, потому что команды выполнялись слишком быстро. Например, я использую .pressKeys('TEST\nIN\nPROGRESS\n')
, где \n
должен выполнять javascript на странице, чтобы превратить предыдущий текст в тег (например, теги SO для этого вопроса: [intern] [javascript] [testing]
).
Эта команда должна привести к следующим:
[TEST] [IN] [PROGRESS]
, но вместо этого приводит к
[TESTIN] [PROGRESS]
вызывает мои утверждения на провал. Изменение команды pressKeys
для
.pressKeys('TEST\n')
.sleep(500)
.pressKeys('IN\n')
.sleep(500)
.pressKeys('PROGRESS\n')
не решить эту проблему. Тест будет проходить/сбой непоследовательно, с тегами иногда выходит как [TEST] [IN] [PROGRESS]
, а иногда и как [TESTIN] [PROGRESS]
.
Другим примером является то, что он не всегда будет ждать загрузки следующей страницы, когда I .click()
по ссылке, даже после команды .sleep()
.
Что касается TestingBot, то приложению не удалось загрузить файлы, и я не мог на всю жизнь выяснить, как включить услугу file_watcher
, необходимую для этого. У них есть file upload example here, но я не знаю, как настроить Intern, чтобы сделать это для меня.
Разве интерник не должен заботиться об этих различиях в облачных провайдерах для испытаний?
Есть ли стандартный способ написания моих тестов в Intern, чтобы я мог изменить поставщика облачных тестов без изменения самих тестов?
Что касается условий гонки, это именно то, что здесь происходит. Тайм-аут find не устраняет проблему, с которой я столкнулся, но ключ возврата не регистрируется - мне нужно буквально замедлить команды, которые, как представляется, не выполняются 'sleep()'. – jperezov
Это может помочь, если вы продемонстрируете весь тест вместо этой части теста, если этот совет не работает, поскольку в коде, не представленном в OP, может возникнуть вторичная проблема. –
Я создал кодовый код (http://codepen.io/anon/pen/MaBpXR?editors=001), содержащий полный тест на провал. – jperezov