selenium的优点
Selenium是时下最主流的自动化测试工具,具有以下优点:
多浏览器:Chrome、Firefox、Safari、IE等主流界面浏览器,同时也支持phantomJS无界面浏览
器。
多平台:Windows、Linux、Mac、Android、IOS等
多语言:Java、Ruby、Python、Perl、PHP、C、C#等
免费开源:免费开源,对商业用户也没有任何限制
分布式:可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能
技术支持:成熟的社区、大量的文档支持
selenium的发展史
2004年:selenium 1.0 = Selenium IDE + Selenium Grid + Selenium RC
2011年:selenium 2.0 = Selenium 1.0 + Webdriver
2016年:selenium 3.0 = selenium 2.0 - selenium RC
1.起源
2004年,ThoughtWorks的员工Jason Huggins不想让自己的时间浪费在无聊、重复的工作中。他和他的团队采用JavaScript编写了一个能驱动浏览器页面行为的JavaScript类库,这就是selenium core,同时也是seleniumRC、selenium IDE的核心组件。
有意思的是,当时的主流商业自动化测试工具是QTP mercury,mercury是汞,水银的意思,而selenium是化学元素硒,硒可以对抗汞。
从2004年到现在,selenium已经发展到了selenium3.0
1.1 Selenium1.0
Selenium 1.0 = Selenium IDE + Selenium Grid + Selenium RC
Selenium IDE:一个嵌入到Firefox浏览器的插件,可以实现简单的浏览器的操作录制和回放功能
Selenium Grid:一种自动化测试的辅助工具,用来分布式执行测试用例脚本(在不同的系统、浏览器上运行同一份脚本)
Selenium RC:Selenium RC = Client Libraries + Selenium Sever,其中 Selenium Sever负责控制
浏览器的行为,而Client Libraries是测试人员编写测试脚本控制Selenium Sever的库。
1.2 Selenium2.0
Selenium2.0又名Webdriver,selenium和webdriver本来是竞争对手,两个项目合并后发布于2011
年,Selenium2.0即继承了webdriver的优点(脚本直接控制浏览器,模拟用户操作)和selenium支持广泛的浏览器。 Selenium 2.0 = Selenium1.0 +WebDriver
1.3 Selenium3.0
Selenium3.0做了许多更新:
(1)去掉了Selenium RC,Selenium 3.0 = Selenium2.0 -
SeleniumRC
(2)只支持Java 8.0及以上的Java版本
(3)Selenium的FireFox驱动独立了,之前在2.0版本时下载Selenium就可以直接驱动FireFox浏览器。现在必须另外下载驱动。
(4)MAC OS 集成Safari的浏览器驱动。默认在/usr/bin/safaridriver 目录下。
(5)只支持IE 9.0版本以上。
安装selenium
- 1.按windows+R键,输入cmd,打开dos界面
- 2.输入pip install selenium,回车,即可安装
如果提示"pip既不是内部命令也不是外部命令",则有可能是安装python的时候没有安装pip,或者是安装了但没有把Scripts文件夹添加到环境变量,请自行解决。
上面的安装命令默认是使用国外源进行安装,如果速度太慢,可改用国内源安装,下面是几个国内源的地址,百度可以搜索到更多国内源地址,能用就行。
清华:https://pypi.tuna.tsinghua.edu.cn/simple
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣:https://pypi.doubanio.com/simple/
使用国内源安装的命令格式是pip install -i 国内源地址 selenium,例如使用豆瓣国内源安装,它的命令就是
pip install -i https://pypi.doubanio.com/simple/ selenium - 3.如果需要卸载selenium,在dos窗口中输入pip uninstall selenium
使用selenium
#导入webdriver
from selenium import webdriver
#打开谷歌浏览器,注意Chrome是大写开头
chrome=webdriver.Chrome()
#打开火狐浏览器,注意Firefox是大写开头
ff=webdriver.Firefox()
#打开IE,注意Ie是大写开头
ie=webdriver.Ie()
#打开百度
chrome.get('https://www.baidu.com')
#关闭浏览器
chrome.quit()
Selenium Webdriver元素定位的八种常用方式
- 1.按ID定位:首选id,id是唯一
driver.find_element_by_id('s-top-loginbtn')
- 2.按name属性的值查找
driver.find_element_by_name('userName')
- 3.按class类名定位:如果class属性中间有空格,要把中间的空格替换成点号.
driver.find_element_by_class_name('tang-pass-footerBarULogin.pass-link')
- 4.按标签名称定位
driver.find_element_by_tag_name('input')
- 5.根据a标签文本查找a标签
# 模糊查找
driver.find_element_by_partial_link_text('60天小白变"大神"').text
# 精确查找
driver.find_element_by_link_text('忘记密码?')
- 6.根据标签名定位
driver.find_element_by_tag_