博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Selenium WebDriver- 操作frame中的页面元素
阅读量:4965 次
发布时间:2019-06-12

本文共 2479 字,大约阅读时间需要 8 分钟。

#encoding=utf-8import unittestimport timefrom selenium import webdriverfrom selenium.webdriver import ActionChainsclass VisitSogouByIE(unittest.TestCase):    def setUp(self):        #启动IE浏览器        #self.driver = webdriver.Firefox(executable_path = "e:\\geckodriver")        self.driver = webdriver.Ie(executable_path = "e:\\IEDriverServer")            def test_HandleFrame(self):        from selenium.webdriver.support import expected_conditions as EC        from selenium.webdriver.support.ui import WebDriverWait        from selenium.common.exceptions import TimeoutException        url = "http://127.0.0.1/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, 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        # 再输入框中输入“我在中间frame”        self.driver.find_element_by_tag_name("input").send_keys(u"我在中间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()        self.driver.switch_to.frame("rightframe")        assert u"这是右侧 frame 页面上的文字" in self.driver.page_source        self.driver.switch_to.default_content()            def tearDown(self):        # 退出IE浏览器        self.driver.quit()if __name__ == '__main__':    unittest.main()

 

转载于:https://www.cnblogs.com/qingqing-919/p/8709661.html

你可能感兴趣的文章
sql server 查询分析器中表名无效,有红线,其实是这张表的
查看>>
hash 分区的用途是什么?
查看>>
linux/windows下启用和停止VMware后台服务的脚本
查看>>
在eclipse中API的封装和调用
查看>>
POJ 1330 Nearest Common Ancestors(Tree)
查看>>
小程序基础总结
查看>>
IDA Pro 数据库文件
查看>>
创建.htaccess文件
查看>>
20165305 《网络对抗技术》 Kali安装
查看>>
如何判断css是否加载完成
查看>>
MySQL数据库服务器逐渐变慢分析与解决
查看>>
C#学习-面向对象语言都有类
查看>>
故宫和雪
查看>>
易错java知识点总结(持续更新)
查看>>
01 基本数据类型
查看>>
06 文件处理
查看>>
大二暑假周进度总结02
查看>>
多线程和包
查看>>
.net实例:Asp.net把UTF-8编码转换为GB2312编码
查看>>
php foreach 语法的遍历来源数组如果不是一个有效数组php会出现错误警告 Invalid argument supplied for foreach()...
查看>>