Привет! Я много искал по inte rnet, чтобы найти способ переключиться с веб-интерфейса или встроенного контекстного представления на iframe. Я пытаюсь автоматизировать вход пользователя в приложение, и третий этап идентификации - это создание OTP. Это происходит внутри iframe, и я попробовал несколько вещей, чтобы взаимодействовать с ним. Во-первых, я не могу найти хорошую документацию о том, как добиться этого с помощью ключевых слов (Appium) с помощью робота, и у меня нет большого опыта программирования, чтобы написать его в python, а затем позвонить, но я пытался.
Первым делом я попытался использовать ключевые слова «переключиться в контекст» и «получить контексты», которые я уже использую для переключения между нативным и веб-обзором:
List Contexts
${contexts}= Get Contexts
${native}= Get From List ${contexts} 0
${webview}= Get From List ${contexts} 1 #-1
${chromeviewiframe} get from list ${contexts} -1 #1
Set Test Variable ${native}
Set Test Variable ${webview}
set test variable ${chromeviewiframe}
#Test Case code
sleep 60
list contexts
switch to context ${chromeviewiframe}
wait until element is visible xpath=//*[@id="btnSMS"] 30
click element xpath=//*[@id="btnSMS"]
Однако он никогда не находит iframe или кнопка и, следовательно, время ожидания - я не уверен, можно ли использовать 'get contextx' для поиска iframes.
Я также попытался поместить небольшой кусочек кода, предоставленный на их странице, в python файл, в котором я намеревался позвонить и надеялся, что это поменяет кадры, но не получилось при этой попытке
#no idea what library's i am supposed to import and if the return makes sense?
class _frames():
def frame (self):
self.driver.switch_to.frame(3)
return self.driver.switch_to.frame(3)
Мой iframe xpath равен (x бы некоторые символы) #iframe //*[@id="xxx2iframe"]
У меня были ошибки, такие как:
Телефон все еще активирован и соединение не потеряно, но я думаю, что он просто не может найти контекст iframe - я не могу правильно проверить python файл, как код не является конкурентным, и я не уверен, что мне нужно сделать, чтобы исправить это, чтобы проверить это «решение». Я также задавался вопросом, есть ли у меня другой файл, называющий selenium и вызывающий ключевое слово frame frame, это будет работать для автоматизации appium, поскольку они используют те же драйверы? Я предполагаю, что нет?
Помощь в выяснении этого была бы очень признательна, у меня нет особого смысла в написании тестов для автоматизации, если я не могу заставить ее автоматически войти в систему и пройти этот пункт.
С уважением, Джем