热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Seleniumwebdriver系列教程(5)—如何定位frame中的元素

在webui自动化测试中,frame一直是令人头痛的问题,就像上班必须挤公车坐地铁一般,frame的问题总是令人气闷纠结为之黯然神伤。以前

web ui自动化测试中,frame一直是令人头痛的问题,就像上班必须挤公车坐地铁一般,frame的问题总是令人气闷纠结为之黯然神伤。

  以前在使用watir 1.6x的时候,frame也是颇为棘手的一个问题。不但要照本宣科的进行一系列的设置,而且在进行实际代码编写的过程中会遇到各种奇奇怪怪的问题。frame就像中国男足的后防线,问题多多难以解决。

  selenium webdriver处理frame比较简单,这点比某些测试工具要先进一些,令人身心愉悦。

  以下面的html代码为例,我们看一下如何定位frame上的元素。

frame.html






Outside frame






part1.htm



This is part 1




  switch_to方法会new1个TargetLocator对象,使用该对象的frame方法可以将当前识别的"主体"移动到需要定位的frame上去。

require 'rubygems'
require 'selenium-webdriver'
dr = Selenium::WebDriver.for :firefox
frame_file = 'file:///'+File.expand_path(File.join(File.dirname(__FILE__), 'frame.html'))
dr.navigate.to frame_file
# 定位default content上的p元素
p dr.find_element(:id => 'p')
# 将当前识别主体移动到id为f_1的frame上去
dr.switch_to.frame('f_1')
# 点击frame上的button
dr.find_element(:id =>'btn').click # --> a alert will popup
# 此时再去定位frame外的p元素将出现错误
p dr.find_element(:id => 'p') # --> error
# 将识别的主体切换出frame
dr.switch_to.default_content
p dr.find_element(:id => 'p') # --> ok

  webdriver的frame处理方式让人感觉那个不痛越来越轻松,这点进步值得肯定。

  下一节我们将介绍如何定位弹出的新窗口

相关文章:

Selenium webdriver系列教程(4)—如何定位测试元素

Selenium webdriver系列教程(6)—如何捕获弹出窗口   



最新内容请见作者的GitHub页:http://qaseven.github.io/

   



推荐阅读
author-avatar
红红的累累vdHRC_958
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有