在用robot做自动化测试的时候,经常遇到新开窗口,需要切换窗口的情况。
两种方式来解决:
(1)用robot的关键字来解决
1 实现窗口切换的功能 2 @{handlelist} List Windows #获取当前所有的窗口 3 Select Window @{handlelist}[-1] #选择最后一个窗口 4 Execute JavaScript window.close() #将当前选择的窗口关闭 5 Select Window @{handlelist}[0] #在选择第一个窗口 6 Location Should Be http://www.baidu.com #验证是否正确
(2)借助于python语言来解决
1 #coding=utf-8 2 3 def change(allweb): 4 a = len(allweb) #获取allweb的长度 5 return allweb[a-1] 6 7 if __name__ == '__main__': 8 print change('dewc') #输出的是最后一个
在你的XXcase.robot文件中导入这个文件:
1 Library switchwindow.py
在你的case中,
1 ${handlelist} List Windows 2 ${handle} Change ${handlelist} 3 Select Window ${handle}
就可以实现窗口切换了。
(3)切换窗口之后,新窗口自动关闭
1 Reload Page #刷新页面 2 Click Link ${PUBLISH_CENTER} #进入原来的页面 3 Select Frame ${PUBLISH_IFRAME} #切换frame
新窗口关闭之后,需要返回原来的窗口,如果直接运行,会报no such window的错误。所以需要刷新页面,跳转到原来的窗口,如果需要定位的标签在frame里面,需要再次切换frame。否则,还是找不到。