Код автоматизации пользовательского интерфейса на фрейме отлично работает в Chrome / MSEdge, но не работает в Firefox и Safari - PullRequest
1 голос
/ 12 апреля 2020

Я использую Каратэ v0.9.6.RC1. Код выглядит примерно так: * switchFrame (1) And input ('input [name =' cardnumber ']', 'xxxxxxx')

Это прекрасно работает в Chrome или браузере Edge, но не работает в Firefox или Safari. Я пытался использовать различные методы, такие как Click, Input, Retry и т. Д. c после переключения на фрейм, но Firefox / Safari даже не распознает объект. Также пробовал разные локаторы. Ошибка завершается со следующей ошибкой:

21:14:08.687 request:
101 > POST http://localhost:4444/session/803f524c-3eda-8d46-b1f3-b7ee4c9bc83a/element
101 > Accept-Encoding: gzip,deflate
101 > Connection: Keep-Alive
101 > Content-Length: 59
101 > Content-Type: application/json; charset=UTF-8
101 > Host: localhost:4444
101 > User-Agent: Apache-HttpClient/4.5.12 (Java/1.8.0_242)
{"using":"css selector","value":"input[name='cardnumber']"}

21:14:08.692 response time in milliseconds: 4.54
101 < 404
101 < cache-control: no-cache
101 < content-length: 302
101 < content-type: application/json; charset=utf-8
101 < date: Sun, 12 Apr 2020 13:14:08 GMT
{"value":{"error":"no such element","message":"Unable to locate element: 

input [name = 'номер карты'] "," stacktrace ":" WebDriverError@chrome: //marionette/content/error.js: 175: 5 \ nNoSuchElementError@chrome: //marionette/content/error.js: 387: 5 \ nelement.find /

21: 14: 08.692 http код ответа: 404, ответ: {"value": {"stacktrace" : "WebDriverError@chrome: //marionette/content/error.js: 175: 5 \ nNoSuchElementError@chrome: //marionette/content/error.js: 387: 5 \ nelement.find / POST http://localhost: 4444 / session / 803f524 c -3eda-8d46-b1f3-b7ee4c9bc83a / element 102> Accept-Encoding: gzip, deflate 102> Соединение: Keep-Alive 102> Content-Length: 59 102> Тип содержимого: application / json; charset = UTF-8 102> Хост: localhost: 4444 102> Агент пользователя: Apache -HttpClient / 4.5.12 (Java / 1.8.0_242) {"using": "css selector "," value ":" input [name = 'cardnumber'] "}

Я не уверен, что я что-то здесь упустил. Любые входные данные будут оценены.

1 Ответ

1 голос
/ 12 апреля 2020

Да, я не думаю, что браузеры FF и Safari правильно выполняют переключение кадров. Я могу ошибаться, но попробовав немного и сдавшись - вы можете покопаться в коде / spe c и исправить это. PR-приветствия!

Я также предлагаю изучить, если вы можете достичь этого через JS, вот несколько идей: { ссылка }

Обратите внимание, что каратэ очень легко внести свой вклад, у нас есть подробное руководство: https://github.com/intuit/karate/wiki/Developer-Guide

...