码字不易,转发请注明出处:http://blog.youkuaiyun.com/qq_28945021/article/details/53538704
前言
近期接到编写一个自动化测试web项目的脚本任务,由于需要兼容IE,因此只能选择Selenium咯,本篇博客意在记录,备忘,若有不足或错误,还望指出。
依赖
首先需要下载Selenium,使用pipy很简单的就能下载下来。
接下来是兼容几个浏览器的驱动,这里我只使用IE,因此只下载了Ie的驱动:
注意!!!在选择IE驱动时,使用32bit的,不然你的脚本会运行得极慢!尤其是send_keys时
这些依赖很容易就能下到了。多用心百度下。
使用
1.打开浏览器并跳转页面:
from selenium import webdriver
bower = webdriver.Ie() #打开Ie浏览器
bower.get("http://www.baidu.com") #跳转到百度页面
值得注意的是,坑爹的Ie某样安全选项会使跳转页面后bower丢失,无法使用,反正我用的时候是全部关闭的。
2.寻找标签element:
bower.find_element_by_id(id)
bower.find_element_by_tag_name(tagName)
bower.find_element_by_name(name)
...
这个很简单,按下TAB就能出来你想要的寻找方式了。但是值得注意的是,无法从一个页面选中该页面中的iframe中的tag,这种需求时看下一条
3.进入不同iframe,window
bower.switch_to.frame(frameName)
bower.switch_to.window(windowName)
这里默认使用iframe的name和window的name,如无name会匹配id
4.在input文本框中插入文本
text = bower.find_element_by_id("inputText")
#这里是选中待插入的文本框,括号中是该input的id
text.send_keys("快看看你的window")
很奇怪的,在firfox和chrome上都会很快,但是在Ie上就会特别慢,希望有知道如何解决的大神留言。
5.选择Select
from selenium.webdriver.support.select import Select
sel = bower.find_element_by_id("selectId")
Select(sel).select_by_index(num) #根据给定的数选择
今天暂时用到的就这么多,之后有用到更多会积累上来。