Selenium操作Iframe中的页面元素
写在前面
上一篇文章写了关于如何基于Selenium操作iframe中页面元素的内容,点击链接跳转详情:
本文将继续讲解,如何使用Selenium操作iframe中的页面元素。
实践案例
在web应用中iframe一般用在网页内显示网页,或者显示文档中文档。由此也可以看出frame和iframe之间的区别:frame是整个页面的框架,iframe是内嵌的网页元素。Selenium提供的switch_to.frame()
方法同样可以实现Iframe之间的跳转。
为了更直观的演示实践案例,制作了一个包含frame和iframe的html。本文代码可以直接对下面的Html页面进行演示操作。点击链接跳转传送门:Iframe.html
前端界面显示如下:
html代码显示如下:
案例操作步骤:
1.首先定位页面中的frame:
2.获取页面最右边frame中的内容;
3.通过条件判断获取的内容是否复核预期结果;
4.选择测试类型:安全测试;
5.跳转到frame里面的Iframe框架;
6.获取iframe框架中的内容并且做条件匹配,检查获取内容是否成功;
详细测试代码如下:
#control_iframe.py #www.testclass.cn #Altumn import time from selenium import webdriver driver=webdriver.Chrome() url="https://www.testclass.cn/test_html/iframe/frameset.html" driver.get(url) driver.maximize_window() driver.implicitly_wait(10) #首先定位到最右侧的frame; #通过driver.switch_to.frame("id")跳转frame; driver.switch_to.frame("rightframe") rightframe = driver.find_element_by_xpath("//p") text=rightframe.text print("frame内容为:",text) correct_text = "你喜欢做什么类型的软件测试?" #判断一下是否和预期的内容correct_text相符合; if text == correct_text: print("frame内容核对成功!") else: print("frame内容核对失败!") #选择测试类型“安全测试”; driver.find_element_by_id("security_test").click() #跳转frame里面的iframe框架; driver.switch_to.frame("iframe_test") iframe = driver.find_element_by_xpath("//p") text=iframe.text print("最里面iframe内容为:",text) correct_text = "这只是一个测试用的Iframe页面" #判断一下是否和预期的内容correct_text相符合; if text == correct_text: print("最里面iframe内容核对成功!") else: print("最里面iframe内容核对失败!") #等待一下,演示效果; time.sleep(2) driver.quit()
执行结果如下所示:
PS C:\Users\WangXiao\Desktop\python> cd 'c:\Users\WangXiao\Desktop\python'; ${env:PYTHONIOENCODING}='UTF-8'; ${env:PYTHONUNBUFFERED}='1'; & 'C:\Users\WangXiao\AppData\Local\Programs\Python\Python36\python.exe' 'c:\Users\WangXiao\.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\ptvsd_launcher.py' '--default' '--client' '--host' 'localhost' '--port' '61951' 'c:\Users\WangXiao\Desktop\python\control_iframe.py' DevTools listening on ws://127.0.0.1:12502/devtools/browser/e4dea1b9-4c9c-45da-a7da-9552dce8c7f1 frame内容为: 你喜欢做什么类型的软件测试? frame内容核对成功! 最里面iframe内容为: 这只是一个测试用的Iframe页面 最里面iframe内容核对成功!
作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可
文章评论(6)
自动化测试学习交流群:670250199
评论来自小程序
小程序测试一下。
小程序测试一下。
小程序留言测试
博主自己制作html演示,用心良苦啊。