python3.6+selenium实现操作Frame中的页面元素


Posted in Python onJuly 16, 2019

有时网页中会嵌套一个或者多个Frame,此时我们直接去找嵌套在Frame里面的元素会抛出异常,所以在操作的时候我们需要将页面焦点切换到Frame里面,下面我们就以一个实例演示一下!

首先先创建三个html文件,文件代码如下:

1)frameset.html

python3.6+selenium实现操作Frame中的页面元素

2)frame_left.html

python3.6+selenium实现操作Frame中的页面元素

3)frame_right.html

python3.6+selenium实现操作Frame中的页面元素

4)frame_middle.html

python3.6+selenium实现操作Frame中的页面元素

5)把这四个html文件放在同一个文件夹下<

以下是python实现该逻辑的代码:

import unittest
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import TimeoutException
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

class MyTestCase(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox(executable_path=‘D:\python\driver\geckodriver')
def test_HandleFrame(self):
url=“file:///D:/frame/frameset.html”
self.driver.get(url)
#使用索引方式进入指定的frame页面,索引号从0开始
#所以想进入中间的frame,需要使用索引号1
#如果没有使用此行代码,则无法找到页面中左侧frame中的任何页面元素
self.driver.switch_to.frame(0)
#找到左侧frame中的p标签元素
leftFrameText=self.driver.find_element_by_xpath("//p")
#断言左侧frame中的文字是否和“这是左侧frame页面上的文字”这几个关键字相一致
self.assertAlmostEqual(leftFrameText.text,u"这是左侧frame页面上的文字")
#找到左侧frame中的按钮元素,并单击该元素
self.driver.find_element_by_tag_name(“input”).click()
try:
#动态等待alert窗体出现
alertWindow=WebDriverWait(self.driver,10).until(EC.alert_is_present())
#打印alert消息
print(alertWindow.text)
alertWindow.accept()
except TimeoutException as e:
print(e)
#使用driver.switchTo.default_content方法,从左侧frame中返回到frameset页面
#如果不调用此行代码则无法从左侧frame页面中直接进入其他frame页面
self.driver.switch_to.default_content()
#通过标签名找到页面中所有的frame元素,然后通过索引进入该frame
self.driver.switch_to.frame(self.driver.find_elements_by_tag_name(“frame”)[1])
#断言页面源码中是否存在“这是中间frame页面上的文字”关键字串
assert u"这是中间frame页面上的文字"in self.driver.page_source
print(“这是中间的frame页面”)
#在输入框中输入“我在中间frame”
self.driver.find_element_by_tag_name(“input”).send_keys(“我在中间frame”)
self.driver.switch_to.default_content()
self.driver.switch_to.frame(self.driver.find_element_by_id(“rightframe”))
assert u"这是右侧frame页面上的文字" in self.driver.page_source
self.driver.switch_to.default_content()
print(“这是右侧的frame页面”)

if name == ‘main':
unittest.main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之让人欢喜让人忧的迭代
Oct 02 Python
spyder常用快捷键(分享)
Jul 19 Python
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 Python
python利用smtplib实现QQ邮箱发送邮件
May 20 Python
pycharm重置设置,恢复默认设置的方法
Oct 22 Python
python利用requests库模拟post请求时json的使用教程
Dec 07 Python
python学生管理系统
Jan 30 Python
TensorFlow 多元函数的极值实例
Feb 10 Python
Python验证码截取识别代码实例
May 16 Python
Keras 在fit_generator训练方式中加入图像random_crop操作
Jul 03 Python
python实现人性化显示金额数字实例详解
Sep 25 Python
Python深度学习之实现卷积神经网络
Jun 05 Python
Python Web版语音合成实例详解
Jul 16 #Python
windows下python虚拟环境virtualenv安装和使用详解
Jul 16 #Python
Pandas中DataFrame的分组/分割/合并的实现
Jul 16 #Python
Python的matplotlib绘图如何修改背景颜色的实现
Jul 16 #Python
python调用其他文件函数或类的示例
Jul 16 #Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
Jul 16 #Python
用Anaconda安装本地python包的方法及路径问题(图文)
Jul 16 #Python
You might like
杏林同学录(六)
2006/10/09 PHP
php格式化时间戳显示友好的时间实现思路及代码
2014/10/23 PHP
PHP统一页面编码避免乱码问题
2015/04/09 PHP
php获取远程文件大小
2015/10/20 PHP
js 提交和设置表单的值
2008/12/19 Javascript
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
Jquery写一个鼠标拖动效果实现原理与代码
2012/12/24 Javascript
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
js兼容pc端浏览器并有多种弹出小提示的手机端浮层控件实例
2015/04/29 Javascript
用JavaScript实现页面重定向功能的教程
2015/06/04 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
微信小程序 Record API详解及实例代码
2016/09/30 Javascript
基于jquery实现多级菜单效果
2017/07/25 jQuery
React Native之ListView实现九宫格效果的示例
2017/08/02 Javascript
vue综合组件间的通信详解
2017/11/06 Javascript
微信小程序实现自动定位功能
2018/10/31 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
对node通过fs模块判断文件是否是文件夹的实例讲解
2019/06/10 Javascript
vue使用websocket的方法实例分析
2019/06/22 Javascript
webpack.DefinePlugin与cross-env区别详解
2020/02/23 Javascript
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
python益智游戏计算汉诺塔问题示例
2014/03/05 Python
Python random模块常用方法
2014/11/03 Python
通过C++学习Python
2015/01/20 Python
Pycharm学习教程(1) 定制外观
2017/05/02 Python
利用Python破解斗地主残局详解
2017/06/30 Python
python中使用%与.format格式化文本方法解析
2017/12/27 Python
python抓取多种类型的页面方法实例
2019/11/20 Python
Python PyQt5整理介绍
2020/04/01 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
2020/06/02 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
2020/12/07 Python
霸王洗发水广告词
2014/03/14 职场文书
医德医风自我评价2015
2015/03/03 职场文书
护士长2015年终工作总结
2015/04/24 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技