Тесты Selenium IDE не пройдены при запуске на Selenium Grid - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть установка, в которой я делаю простые тесты с IDE Selenium, затем сохраняю проект в виде файла *.side в репозиторий, который сервер, на котором работает Selenium Grid, затем извлекает, выполняет все содержащиеся в нем тесты и затем отправляет мне результаты по электронной почте. , Для большинства тестов я получаю те же результаты, что и локально, только несколько баннеров cook ie вызывали проблемы, потому что кажется, что локально это не проблема, если вы не нажимаете на них, но когда тесты запускаются на Selenium Grid, они потерпит неудачу, потому что баннер cook ie блокирует все клики. Теперь у меня похожая проблема, но нет ничего лучше баннера повара ie. Я тестирую пользовательский интерфейс Swagger, и всякий раз, когда я запускаю тест на Selenium Grid, я получаю сбои, подобные следующему:

FAIL DefaultSuite/click-a-couple-headers.test.js (7.275s)
  ✕ click-a-couple-headers (5319ms)

  ● click-a-couple-headers

    ElementClickInterceptedError: element click intercepted: Element <div class="opblock-summary opblock-summary-get">...</div> is not clickable at point (476, 18). Other element would receive the click: <header>...</header>
      (Session info: chrome=80.0.3987.106)

      at Object.throwDecodedError (../../../node_modules/selenium-side-runner/node_modules/selenium-webdriver/lib/error.js:550:15)
      at parseHttpResponse (../../../node_modules/selenium-side-runner/node_modules/selenium-webdriver/lib/http.js:560:13)
      at Executor.execute (../../../node_modules/selenium-side-runner/node_modules/selenium-webdriver/lib/http.js:486:26)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 total
Snapshots:   0 total
Time:        7.58s, estimated 8s

При поиске селектора CSS в тесте Selenium IDE, кажется, это та часть, где он терпит неудачу:

{
  "id": "12345678-1111-5555-8888-1234567890ab",
  "comment": "",
  "command": "setWindowSize",
  "target": "968x648",
  "targets": [],
  "value": ""
}, {
  "id": "12345678-2222-6666-8888-1234567890ab",
  "comment": "",
  "command": "runScript",
  "target": "window.scrollTo(0,413)",
  "targets": [],
  "value": ""
}, {
  "id": "12345678-4444-7777-8888-1234567890ab",
  "comment": "",
  "command": "click",
  "target": "css=#operations-category-method_path_to_endpoint > .opblock-summary",
  "targets": [
    ["css=#operations-category-method_path_to_endpoint > .opblock-summary", "css:finder"],
    ["xpath=//div[@id='operations-category-method_path_to_endpoint']/div", "xpath:idRelative"],
    ["xpath=//span[2]/div/div/span/div/div", "xpath:position"]
  ],
  "value": ""
}

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

/* scroll command */
{
  "id": "12345678-3333-7777-8888-1234567890ab",
  "comment": "",
  "command": "waitForElementVisible",
  "target": "css=#operations-category-method_path_to_endpoint > .opblock-summary",
  "targets": [
    ["css=#operations-category-method_path_to_endpoint > .opblock-summary", "css:finder"],
    ["xpath=//div[@id='operations-category-method_path_to_endpoint']/div", "xpath:idRelative"],
    ["xpath=//span[2]/div/div/span/div/div", "xpath:position"]
  ],
  "value": "30000"
},
/* click command */

Локально тест еще работал нормально в Firefox и Chrome (который запускает Grid), но в Grid он завершается с той же ошибкой, что и раньше. Кто-нибудь знает, как решить эту проблему или как правильно отладить ее?

1 Ответ

0 голосов
/ 17 апреля 2020

Оказывается, это была не проблема синхронизации, а скорее проблема с информационной панелью (о браузере, управляемом с помощью программного обеспечения для автоматизации) в верхней части окна браузера, которую я не получил локально. Функция видеозаписи Selenium Grid Extras оказалась действительно полезной для отслеживания этого. Полезно знать, потому что README репо не упоминает об этом: информация об узле (и видео) отображается на портах 3100 (браузер Chrome) и 3200 (браузер FireFox) соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...