На одном из шагов теста перед нажатием на какой-либо элемент я использую селен.
ExpectedConditions.elementToBeClickable(element)
Этот метод проверяет видимость, подтверждая, что элемент отображается
element.isDisplayed()
Тесты запускаются в стеке браузера.
Обратите внимание, что с комбинацией OS X High Sierra + Safari 11 этот шаг проходит. Но с Mojave + Safari 12 после того, как элемент найден и отправлен запрос
/ session /: sessionId / element /: id / display, я вижу в ответе журнала селена «неизвестная команда»:
{"value":{"error":"unknown command","message":"The command 'GET \/session\/CD43B950-D8D6-49A4-A0FF-3F459F1F6D86\/element\/node-E721541C-713B-4607-8041-C79138E08704\/displayed' was not found.","stacktrace":""}}
Здесь я вижу, что такой запрос ("отображается") отсутствует: https://developer.apple.com/documentation/webkit/macos_webdriver_commands_for_safari_12_and_later?language=objc
Итак, вопрос: можно ли использовать element.isDisplayed () с Safari 12? Я что-то упускаю? Если это невозможно, поделитесь возможными обходными путями. Спасибо
Обновить. Из службы поддержки Apple:
Пожалуйста, знайте, что наша команда инженеров определила, что эта проблема работает должным образом, на основе предоставленной информации.
Если вам нужен element.isDisplayed (), мы рекомендуем вам скопировать атом в свой репозиторий и запустить его с помощью команды Execute Script. Это то, что начали делать более поздние версии библиотек Selenium, потому что драйверы больше не обязательно поставляют это.
Уточнение: в моих тестах используется селен 2.52