selenium
2018-06-04 本文已影响27人
喵帕斯0_0
selenium是一个Web应用测试的工具,它直接运行与浏览器中,就像真正用户在操作一样。支持Chrome/Firefox/Safari等,可用于爬虫、测试等用途,也可以用于抢票哦。通过Python可以连接selenium。
安装
-
curl -O http://chromedriver.storage.googleapis.com/2.39/chromedriver_mac64.zip
,该地址还提供了其他版本的chromedrive; - 移动:
sudo mv chromedriver /usr/local/bin/
; - 添加可执行权限:
sudo chmod u+x,o+x /usr/local/bin/chromedriver
; - 验证:
chromedriver --version
; - 安装python-selenium:
pip install selenium
,文档。
使用
只介绍现在常用到的一些操作,会随着学习的深入时不时进行补充
创建对象
from selenium import webdriver
driver = webdriver.Chrome() #以Chrome为例
driver.close() #关闭浏览器对象,当操作全部完成后需记得close
访问网页
driver.get('https://github.com/login')
print(driver.title) # 获取网页标题
print(driver.page_source) # 获取网页html源码
查找单个元素
user_name_element = driver.find_element_by_name('login') # 通过name属性查找
user_name_element = driver.find_element_by_id('login_field') # 通过id查找
"""
#其他常用查找方法
find_element_by_xpath
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selector
"""
查找多个元素
上述查找单个元素 element
加个s
即可;例如,driver.find_elements_by_name
元素的相关操作
user_name_element.clear() # 清除文本
user_name_element.send_keys('reynok') # 输入文本,支持多个参数,多次输入
drive.find_element_by_name('commit').click() # 点击按钮
cookies相关
driver.get_cookies() #获取cookie
driver.add_cookie({'name':'reynok'}) #添加cookie
driver.delete_all_cookies() #删除cookies
获取元素信息
print(user_name_element.id) #id
print(user_name_element.tag_name) #标签名
print(user_name_element.size) #大小
print(user_name_element.text) #文本
print(user_name_element.get_attribute('class')) #class
登录Github的演示代码
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://github.com/login')
user_name_element = driver.find_element_by_id('login_field') #查找账号元素
user_name_element.clear() #清除文本
user_name_element.send_keys('*********') #输入账号
password_element = driver.find_element_by_name('password') #查找密码对应元素
password_element.clear()
password_element.send_keys('**********') #输入密码
driver.find_element_by_name('commit').click() #点击按钮
print(driver.get_cookies()) #打印cookies
time.sleep(10) #睡眠10秒,以看到浏览器的执行过程
driver.close() # close explore
自动登录的过程
总结
本篇只讲了博主平常用到的python-selenium
用法,更多的用法可见文档。后面博主会研究下headless chrome drive
。