selenium

2018-06-04  本文已影响27人  喵帕斯0_0

selenium是一个Web应用测试的工具,它直接运行与浏览器中,就像真正用户在操作一样。支持Chrome/Firefox/Safari等,可用于爬虫、测试等用途,也可以用于抢票哦。通过Python可以连接selenium。

安装

  1. curl -O http://chromedriver.storage.googleapis.com/2.39/chromedriver_mac64.zip该地址还提供了其他版本的chromedrive;
  2. 移动:sudo mv chromedriver /usr/local/bin/;
  3. 添加可执行权限:sudo chmod u+x,o+x /usr/local/bin/chromedriver;
  4. 验证:chromedriver --version;
  5. 安装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

上一篇 下一篇

猜你喜欢

热点阅读