Python+Selenium基础入门及实践
一、Selenium+Python环境搭建及配置
1.1 selenium 介绍
selenium 是一个 web 的自动化测试工具,不少学习功能自动化的同学开始首选 selenium ,因为它相比 QTP 有诸多有点:
- 免费,也不用再为破解 QTP 而大伤脑筋
- 小巧,对于不同的语言它只是一个包而已,而 QTP 需要下载安装1个多 G 的程序。
- 这也是最重要的一点,不管你以前更熟悉 C、 java、ruby、python、或都是 C# ,你都可以通过 selenium
完成自动化测试,而 QTP 只支持 VBS - 支持多平台:windows、linux、MAC ,支持多浏览器:ie、ff、safari、opera、chrome
- 支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能。
1.2 selenium+Python环境配置
前提条件:已安装好Python开发环境(推荐安装Python3.5及以上版本)
安装步骤:
1.安装selenium
Win:pip install selenium
Mac: pip3 install selenium
2.安装webdriver
- Firefox:https://github.com/mozilla/geckodriver/releases/
- Chrome:https://sites.google.com/a/chromium.org/chromedriver/ 或者 http://chromedriver.storage.googleapis.com/index.html
- IE:http://selenium-release.storage.googleapis.com/index.html
注:webdriver需要和对应的浏览器版本以及selenium版本对应
3.webdriver安装路径
Win:复制webdriver到Python安装目录下
Mac:复制webdriver到/usr/local/bin目录下
二、元素定位及浏览器基本操作
2.1 启动浏览器
2.1.1 普通方式启动
- 启动Chrome浏览器:
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('http://www.baidu.com/')
- 启动Firefox浏览器:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://www.baidu.com/')
- 启动IE浏览器:
from selenium import webdriver
browser = webdriver.Ie()
browser.get('http://www.baidu.com/')
2.1.2 Headless方式启动
Headless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有 Chrome 支持的特性运行你的程序。相比于现代浏览器,Headless Chrome 更加方便测试 web 应用,获得网站的截图,做爬虫抓取信息等。相比于较早的 PhantomJS,SlimerJS 等,Headless Chrome 则更加贴近浏览器环境。
Headless Chrome 对Chrome版本要求:
官方文档中介绍,mac和linux环境要求chrome版本是59+,而windows版本的chrome要求是60+,同时chromedriver要求2.30+版本。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common