Я потратил слишком много времени на изучение этого вопроса вчера, потому что у меня возникла та же ошибка при запуске в Safari с wdio v4.13.2
Сообщение об ошибке совершенно правильное, команды нет:
GET /session/:sessionId/element/:id/property/:name
Что мы на самом деле хотим сделать, так это:
GET /session/:sessionId/element/:id/attribute/:name
Я нашел список документов, в которых можно было бы сделать звонки здесь
Если вы посмотритев функции getValue
в webdriverio она вызывает собственную функцию с именем elementIdProperty
, которая выполняет запрос к URL wd/hub/session/"sessionId"/element/"elementId"/property/value
, указанному выше.Однако в функции есть условный оператор, который говорит, что если это неизвестная команда, она должна вызвать другую функцию с именем elementIdAttribute
, которая отправляет запрос на правильный URL-адрес, заканчивающийся /attribute/value
.Я предполагаю, что когда вы запускаете его в Chrome, он распознает ответ неизвестной команды, а когда вы запускаете его в Safari - нет.Когда я пытался делать запросы вручную в браузере, ответы выглядели иначе.Все это очень расстраивало, чтобы выяснить это и трудно устранить.
Мой обходной путь - просто использовать функцию getAttribute
непосредственно из webdriverio, например:
const value = browser.getAttribute(selector, 'value');
Тогда мы можем увидетьесли они исправят это в более поздней версии webdriverio.