有两个问题:
1. frame标签后面加冒号是标准的frame写法吗?不会是自定义的标签吧
<frame:groupmenu ...>
...
</frame>
2. 我用的switch_to_frame(frameName) 没有问题
print '-------------------------switch to top frame'driver.switch_to_default_content()
driver.switch_to_frame('top')
print driver.find_element_by_id('top-btn').text
print 'switch_to_frame done.'
print '-------------------------switch to left frame'
driver.switch_to_default_content()
driver.switch_to_frame('left')
print driver.find_element_by_id('left-btn').text
print 'switch_to_frame done.'
print '-------------------------switch to main frame'
driver.switch_to_default_content()
driver.switch_to_frame('main')
这个可以通过浏览器自带的f12 。
或者通过鼠标右键,审计元素获得当前html源代码。
步骤如下:
使用框架载入形式,代码如下:
代码解析:
src="123.htm" 载入的页面 。
scrolling=no 有3个选择 分别为yes no auto 这个就是设置下拉条的,yes为有下拉条,no
为没有,auto为自动识别。
width=500 载入页面的宽度 。
height=500 载入页面的高度 。
bordercolor="#000000" 载入页面的背景颜色 。
提示:只要复制我那句代码,然后再把宽度和高度设置成你想要的。
一开始,基本上很多人都是用selenium IDE录制脚本开始的,我也是!有一本书写得很不错:selenium初学者指南!So,从录制回放开始我的selenium,而在这个过程中,不断地去补充我的html css知识,熟悉selenium的api!慢慢地,发现录制的脚本在回放的时候经常报错,通过检查发现,是定位上的错误,导致这种定位的错误的最大原因是系统前端采用了某种框架,如tigerUI,exj....所以HTML里面的标签很多都是动态的,比如id,class,name!这对selenium *** 作定位的元素而进行自动化来说是致命伤!
所以,开始自己写定位信息,这已经是必须的了!从而学习了xpth和css选择器,掌握了更加有效,快速和稳定地定位页面上的元素(定位的时候难免会碰到有iframe,这就得先切换到iframe中再进行定位了)!也就是,在selenium IDE上写脚本!
信心满满地在selenium IDE上写了长长地一段脚本,并且反复跑都能成功!总算尝到了一点点幸福的滋味!然后呢,问题来了,当我要修改和扩展这段的脚本的时候,才发现这效率是相当地低!一句句查!一句句改!多么痛的领悟!
另外,selenium IDE 默认启动的是火狐,在使用selenium RC 启动 IE 进行跑脚本时浏览器总是会报错!各种搞不定,各种不淡定!决定放弃使用IDE!
selenium有一个强大之处就是支持多种语方:java,C#,python等等,并且可以把录制的脚本转换成代码!我用的是java,果断走起!
不用说,当然是把脚本转为java代码了,在E www.hbbz08.com clipse中重新开始搞!
选择一个测试框架:有Junit和TestNg两个选择,公司用的是junit,所以,不用多说,我就用junit验证selenium脚本的运行结果!并且,Junit和TestNG都可以生成比较直观的测试报告!
写好一些代码,会看到整段代码中密密麻麻充斥着基本相同的代码:开始封装代码!把常用到API封装起来!封装好之后代码看着就舒服多了!
接下来,是不是也应该把代码中的定位信息用一个专门的文件放起来,再去读取里面的定位信息,这样,维护代码和维护定位信息就放在了两个地方,不用老是扎在代码和定位路径中,简单地分一下层!果断尝试!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)