通过ROBOT框架使用appium切换到android native和web应用程序上的iframe

问题描述 投票:0回答:1

[嗨,我在互联网上进行了大量搜索,以查找如何从网络或本机上下文视图切换到iframe。我正在尝试自动使用户登录到应用程序,并且第三段标识正在生成OTP。这恰好在iframe内部,我已经尝试了很多与之交互的方法。首先,我找不到关于如何使用机器人使用关键字(Appium)实现此目的的任何文档,而且我没有大量的编程经验来用python编写然后调用它,但我已经尝试过。

我尝试过的第一件事就是使用关键字'switch to context'和'get contexts',它们已经在本地和webview之间切换了。

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 contexts'是否可以用于查找iframe。

我还试图将他们页面上提供的少量代码appium放入一个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"]

我一直遇到诸如以下错误:enter image description here

电话仍处于激活状态,并且连接不会丢失,但我认为它无法找到iframe上下文-由于代码不兼容,我无法正确测试python文件,并且我不确定我需要做些什么来修复它以进行测试那个“解决方案”出来了。我还想知道我是否还有另一个调用selenium的文件并调用switch frame关键字,因为它们使用相同的驱动程序,它是否可以用于appium自动化?我认为不是吗?

帮助弄清楚这一点,将不胜感激,如果我无法自动登录并超越这一点,那么编写自动化测试用例对我来说没有多大意义。

谨启,吉姆

android iframe appium robot
1个回答
0
投票

请将默认浏览器设置为Chrome,然后重新启动设备。之后,Appium会自动检测到Webview。

© www.soinside.com 2019 - 2024. All rights reserved.