PYTHON,SELENIUM如何获取HTML内元素,

PYTHON,SELENIUM如何获取HTML内元素,,第1张

有两个问题:

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封装起来!封装好之后代码看着就舒服多了!

接下来,是不是也应该把代码中的定位信息用一个专门的文件放起来,再去读取里面的定位信息,这样,维护代码和维护定位信息就放在了两个地方,不用老是扎在代码和定位路径中,简单地分一下层!果断尝试!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7542546.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存