[嗨,我在互联网上进行了大量搜索,以查找如何从网络或本机上下文视图切换到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"]
电话仍处于激活状态,并且连接不会丢失,但我认为它无法找到iframe上下文-由于代码不兼容,我无法正确测试python文件,并且我不确定我需要做些什么来修复它以进行测试那个“解决方案”出来了。我还想知道我是否还有另一个调用selenium的文件并调用switch frame关键字,因为它们使用相同的驱动程序,它是否可以用于appium自动化?我认为不是吗?
帮助弄清楚这一点,将不胜感激,如果我无法自动登录并超越这一点,那么编写自动化测试用例对我来说没有多大意义。
谨启,吉姆
请将默认浏览器设置为Chrome,然后重新启动设备。之后,Appium会自动检测到Webview。