1.selenium
-
什么是selenium?
- selenium是一个用于web应用程序测试的工具
- selenium测试直接运行在浏览器中,就像真正的用户在操作一样
- 支持通过各种driver(FirfoxDriver,InternetDriver,OperaDriver,ChromeDirver)驱动真实浏览器完成测试
- selenium也是支持无界面浏览器操作的
-
为什么使用selenium?
- 模拟浏览器功能,自动执行网页中的js代码,实现动态加载
-
如何安装selenium?
-
操作谷歌浏览器驱动下载地址
http://chromedriver.storage.googleapis.com/index.html
-
谷歌驱动和谷歌浏览器版本之间的映射表
http://blog.csdn.net/huilan_same/article/details/51896672
-
查看谷歌浏览器版本
谷歌浏览器右上角->帮助->关于
-
pip install selenium
-
-
selenium的使用步骤:
-
导入: from selenium import webdriver
-
创建谷歌浏览器操作对象:
path = 谷歌浏览器驱动文件路径
browser = webdriver.Chrome(path)
-
访问网址
url = 要访问的网址
browser.get(url)
-
selenium的元素定位:
- 元素定位:自动化要做的就是模拟鼠标和键盘来操作这些元素,点击、输入等。操作这些元素首先要找到它们,webdriver提供很多元素定位的方法
- 方法:
- find_element_by_id
- button = browser.find_element_by_id(‘su’)
- find_element_by_name
- name = browser.find_element_by_name(‘wd’)
- find_elements_by_xpath
- xpath1 = browser.find_elements_by_xpath(’//input[@id=“su”]’)
- find_elements_by_tag_name
- names= browser.find_elements_by_tag_name(‘input’)
- find_elements_by_css_selector
- find_elements_by_link_text
- find_element_by_id
-
访问元素信息:
-
获取元素属性:
.get_attribute(‘class’)
-
获取元素文本:即两个尖括号之间的内容,如 < span> 百度 < /span>,则获取的元素文本即为百度
.text
-
获取标签名
.tag_name
-
-
交互:
-
点击:click()
-
输入:send_keys()
-
后退操作:browser.back()
-
前进操作:browser.forword()
-
模拟JS滚动:
JS=‘document.documentElement.scrollTop=100000’
browser.execute_script(js)执行js代码
-
获取网页代码:page_source
-
退出:browser.quit()
-
-
2.Phantomjs(已经停更,不推荐使用)
-
什么是Phantomjs:
- 是一个无界面浏览器
- 支持页面元素查找、js的执行等
- 由于不进行css和gui渲染,运行效率要比真实的浏览器快很多
-
如何使用Phantomjs
-
获取PhantomJS.exe文件路径path
-
browser = webdriver.PhantomJS(path)
-
browser.get(url)
扩展:保存屏幕快照:browser.save_screenshot(‘baidu.png’)
-
3.Chrome handless
-
系统要求:
Chrome:
Unix\Linux 系统需要 chrome>=59
Windows 系统需要 chrome>=60
Python3.6
Selenium==3.4.*
ChromeDriver==2.31
-
配置:
from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu') path = r'C:\Program Files\Google\Chrome\Application\chrome.exe' chrome_options.binary_location = path browser = webdriver.Chrome(chrome_options=chrome_options) browser.get('http://www.baidu.com')