selenium.WebDriverException выбрасывает код ошибки 0x80004005 при использовании метода withFrame () в Firefox - PullRequest
0 голосов
/ 21 февраля 2019

Я создаю набор тестов для веб-сайта (реализованный с использованием узлов и Angular), который собирает пользовательский ввод.Часть входных данных имеет вид текстового поля с возможностями редактирования (аналогично тому, которое используется при переполнении стека).Код, который создает редактируемое поле:

<div id="mceu_30" class="mce-edit-area mce-container mce-panel mce-stack-layout-item" hidefocus="1" tabindex="-1" role="group" style="border-width: 1px 0px 0px;"> 

<iframe id="ui-tinymce-9_ifr" frameborder="0" allowtransparency="true" title="Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help" style="width: 100%; height: 100px; display: block;"></iframe>

<html> <head><style>...</style></head> <body id="tinymce" class="mce-content-body " data-id="ui-tinymce-1" contenteditable="true" spellcheck="false"><p><br data-mce-bogus="1"></p></body> </html>

</div>

Для простоты я удалил весь раздел.

Я использую для тестирования фреймворк Geb / Spock.Конкретный фрагмент кода, который проверяет вышеуказанный элемент:

 withFrame(OppBackgroundBox){$("body", id:"tinymce") << Background }

, где 'Background' - строка, определенная ранее в тестовом скрипте, а OppBackgroundBox - элемент страницы, определенный как

  OppBackgroundBox{$(By.xpath('//iframe[@title="Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"]'),0)}
* 1011.* Я идентифицирую элемент по названию, потому что идентификатор фрейма меняется в браузере (// [@ id = "ui-tinymce-9_ifr"] для Mozilla, но // [@id = "ui-tinymce-1_ifr" для Chrome).

Все отлично работает при запуске теста в Chrome, однако при использовании Firefox (65.0.1 для Mac) я получаю следующееошибка

Условие не выполнено с исключением:

withFrame (OppBackgroundBox) {$ ("body", id: "tinymce") << Background} |||pages.app.OpportunitiesAdminCreatePage -> OppBackgroundBox: geb.navigator.NonEmptyNavigator

org.openqa.selenium.WebDriverException: [Exception ... "Компонент возвратил код ошибки: 0x80004005 (NS_ERRexText_Text_TR): "0x80004005 (NS_ERROR_FAILURE)" расположение: "JS frame :: chrome: //marionette/content/event.js :: getTIP_ :: line 429" data: no] Информация о сборке: версия: '3.141.59', редакция:'e82be7d358', время: '2018-11-14T08: 17: 03' Информация о системе: хост: 'Carless-MacBook-Pro.local', ip: 'fe80: 0: 0: 0: c3c: ed6e: 6d05: b45d% en0 ', os.name:' Mac OS X ', os.arch:' x86_64 ', os.version: '10 .14.3', java.version: '11 .0.1 'Информация о драйвере: org.openqa.selenium.firefox.FirefoxDriver Capabilities {acceptInsecureCerts: true, browserName: firefox, browserVersion: 65.0.1, javascriptEnabled: true, moz: accessibilityChecks: false, moz: geckodriverVersion: 0.24.0, moz: headless: false, moz: processID: 30057,: профиль: / var / folder / 10 / vbth59yn0v1 ..., moz: shutdownTimeout: 60000, moz: useNonSpecCompliantPointerOrigin: false, moz: webdriverClick: true, pageLoadStrategy: нормальный, платформа: MAC, имя_платформы: MAC, platformVersion: 18.2.0, вращаемый: ложный, setWindowRect: true, strictFileInteractability: false: implicit: time: 0, pageLoad: 300000, сценарий: 30000}, unhandledPromptBehavior: отклонить и уведомить} Идентификатор сеанса: 62b25df0-58cf-db4f-9d3c-12a1b12820ce

в CreateProgramProjectOpp.Publish OpportunityProject.: 195)

(где 195 относится к withFrame (OppBackgroundBox) {$ ("body", id: "tinymce") << Background} </em> строка кода)

Приведенное выше сообщение об ошибке немного искажено, но с OppBackgroundBox является сообщение

pages.app.OpportunitiesAdminCreatePage -> OppBackgroundBox: geb.navigator.NonEmptyNavigator

Так что проблема не в том, что WebDriver не может найти элемент.

Версия диРазличные компоненты появляются в сообщении об ошибке.Версия драйвера Gecko - 0.24.0

. В настоящий момент я не знаю, является ли это проблемой с WebDriver, Geb или какой-либо ошибкой конфигурации / управления версиями с моей стороны.

Кто-нибудь нашел этопроблема и обходной путь?Заранее спасибо за любую помощь.

1 Ответ

0 голосов
/ 21 февраля 2019

Это проблема с настройкой Firefox, и она не имеет ничего общего с Geb.Основная ошибка браузера:

Компонент возвратил код ошибки: 0x80004005 (NS_ERROR_FAILURE) [nsITextInputProcessor.beginInputTransactionForTests] «nsresult:« 0x80004005 (NS_ERROR_FAILURE) :: frame: ch:/marionette/content/event.js :: getTIP_ :: line 429 "data: no

Я бы предложил поискать части ошибки и посмотреть, что это дает вам. Скорее всего, это будет что-тоиз-за вашего состояния Firefox или несовместимости между версией FF и бинарной версией драйвера Gecko, которую вы используете.

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