Selenium
Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS,Chrome这些无界面的浏览器)。
Selenium 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。
Selenium 自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。但是我们有时候需要让它内嵌在代码中运行,所以我们可以用一个叫 PhantomJS 的工具代替真实的浏览器。
可以从 PyPI 网站下载 Selenium库https://pypi.python.org/simpl…
也可以用 第三方管理器 pip用命令安装(windows 环境):pip install selenium
Selenium 官方参考文档:http://selenium-python.readth…
ChromeDriver
下载ChromeDriver
找到最新日期的版本,可以查看notes.txt文档,选择支持的Chrome浏览器的版本
- 解压 chromedriver_win32.zip
- 将 chromedriver.exe 移动到 Python安装目录下
(其实放哪都可以,但是需要配环境变量,放Python安装目录下省事)
简单的小介绍
# coding=utf-8
# 导包
from selenium import webdriver
import time
if __name__ == '__main__':
# 1. 创建浏览器对象
driver = webdriver.Chrome()
# 2. 发送请求
driver.get('https://www.baidu.com')
# 3. 获取数据
# data = driver.page_source
# with open('baidu.html', 'w') as f:
# f.write(data.encode('utf-8'))
# 给搜索框 输入数据: 数据 必须是unicode
driver.find_element_by_id('kw').send_keys(u'segmentfault')
# 然后点击
# driver.find_element_by_id('su').click()
# webdriver 也支持xpath
driver.find_element_by_xpath('//*[@id="su"]').click()
time.sleep(3)
# 浏览器有几个标签页
print driver.window_handles
# 屏幕快照
driver.save_screenshot('baidu.png')
# 点击搜索结果的第一条
driver.find_element_by_xpath('//*[@id="1"]/h3/a').click()
# time.sleep(3)
# 因为点击之后会打开一个新的标签,所以需要跳到新的标签
# driver.switch_to_window(driver.window_handles[1])
print driver.window_handles
# 4. 屏幕快照
driver.save_screenshot('baidu1.png')