selenium+python实现自动化登录的方法


Posted in Python onSeptember 04, 2018

Selenium Python 提供了一个简单的API 便于我们使用 Selenium WebDriver编写 功能/验收测试。 通过Selenium Python的API,你可以直观地使用所有的 Selenium WebDriver 功能 。Selenium Python提供了一个很方便的接口来驱动 Selenium WebDriver , 例如Firefox、Chrome、Ie,以及Remote,目前支持的python版本有2.7或3.2以上.

selenium 可以自动化测试、抢票、爬虫等工作。初次了解,现在模拟登录百度——即自动打开浏览器、自动输入账号密码并提交进行登录。

工作需要实现一个微博自动登录的操作,在网上差了一些资料,决定使用selenium+python实现

selenium 是一个web的自动化测试工具,主流一般配合java或者python使用,我这里使用的是python,可支持的浏览器基本包括所有主流浏览器IE、Mozilla Firefox、Google Chrome。

安装过程不再赘述,但是后续使用时,发现很多报错与版本兼容性有关,因此这里列出可用的版本搭配:

python2.7

selenium3.0.2

火狐驱动geckodriver.exe  版本v0.14.0  (使用高版本会出现异常报错)

火狐浏览器52.0.2 (32 位)  (版本太低或53的最新版本,都会报错)

#encoding=utf-8
from selenium import webdriver 
import time 
import os

#模拟登陆weibo 

def getCookies(weibo):
  """ 获取Cookies """
  cookies = []
  driver = webdriver.Firefox()
  time.sleep(3)  #sleep一下,否则有可能报错
  driver.get("https://weibo.com/login/")
  #cur_path=os.getcwd()
  #fileSuc = open(cur_path+"/login.html", 'w')
  #fileSuc.write(driver.page_source)
  #用户名 密码 
  elem_user = driver.find_element_by_xpath('//input[@id="loginname"]') 
  elem_user.send_keys('*****@163.com') #浏览器版本不匹配的时候这里可能报错
  elem_pwd = driver.find_element_by_xpath('//input[@type="password"]')
  elem_pwd.send_keys('*****')
  
  commit = driver.find_element_by_xpath('//a[@node-type="submitBtn"]')
  commit.click()
  time.sleep(3)
  #fileSuc1 = open(cur_path+"/weibo2.html", 'w')
  #fileSuc1.write(driver.page_source)
  #print driver.title 
  #登录成功后获取cookie
  cookie = {}
  if "微博-随时随地发现新鲜事" in driver.title:
    for elem in driver.get_cookies():
      cookie[elem["name"]] = elem["value"]
    if len(cookie) > 0:
      logger.warning("Get Cookie Successful: %s" % account)
      cookies.append(cookie)
      continue
  else:
    logger.warning("Get Cookie Failed: %s!" % account)
  
  driver.close() 
  driver.quit() 
  return cookies

cookies = getCookies(myWeiBo)
print cookies
logger.warning("Get Cookies Finish!( Num:%d)" % len(cookies))

find_element_by_xpath用来定位控件的位置,定位不到的时候,可以把网页的代码保存下来看看是否有对应的控件,如果是安全控件或者登录在js里实现,这种方法是获取不到的。

另外还有find_element_by_name、find_element_by_id的方法,但是我使用的时候出现找不到情况,怀疑是浏览器版本不匹配的原因。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中元类用法实例
Oct 10 Python
PHP魔术方法__ISSET、__UNSET使用实例
Nov 25 Python
python基础之包的导入和__init__.py的介绍
Jan 08 Python
Python读取txt内容写入xls格式excel中的方法
Oct 11 Python
Python语言检测模块langid和langdetect的使用实例
Feb 19 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
Jun 20 Python
python进程池实现的多进程文件夹copy器完整示例
Nov 27 Python
Flask模板引擎Jinja2使用实例
Apr 23 Python
使用Keras实现Tensor的相乘和相加代码
Jun 18 Python
基于python实现ROC曲线绘制广场解析
Jun 28 Python
python switch 实现多分支选择功能
Dec 21 Python
Django如何重置migration的几种情景
Feb 24 Python
python使用scrapy发送post请求的坑
Sep 04 #Python
解决win64 Python下安装PIL出错问题(图解)
Sep 03 #Python
Python全局变量与局部变量区别及用法分析
Sep 03 #Python
Python wxPython库Core组件BoxSizer用法示例
Sep 03 #Python
深入浅析Python中list的复制及深拷贝与浅拷贝
Sep 03 #Python
Python wxPython库使用wx.ListBox创建列表框示例
Sep 03 #Python
Python wxPython库消息对话框MessageDialog用法示例
Sep 03 #Python
You might like
PHP调用三种数据库的方法(2)
2006/10/09 PHP
php模块memcache和memcached区别分析
2011/06/14 PHP
php class中self,parent,this的区别以及实例介绍
2013/04/24 PHP
php使用sql数据库 获取字段问题介绍
2013/08/12 PHP
PHP中Cookie的使用详解(简单易懂)
2017/04/28 PHP
基于jQuery的简单的列表导航菜单
2011/03/02 Javascript
Web开发之JavaScript
2012/03/29 Javascript
Javascript this 的一些学习总结
2012/08/31 Javascript
js 判断checkbox是否选中的操作方法
2012/11/09 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
jQuery自定义组件(导入组件)
2016/11/08 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
2018/09/12 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
2018/09/18 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
解决vue addRoutes不生效问题
2020/08/04 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
python导入模块交叉引用的方法
2019/01/19 Python
Python给图像添加噪声具体操作
2019/03/03 Python
pytorch forward两个参数实例
2020/01/17 Python
Django静态资源部署404问题解决方案
2020/05/11 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
基于PyInstaller各参数的含义说明
2021/03/04 Python
Watch Station官方网站:世界一流的手表和智能手表
2020/01/05 全球购物
餐饮业的创业计划书范文
2013/12/26 职场文书
家长会学生家长演讲稿
2013/12/29 职场文书
房地产销售经理岗位职责
2014/01/01 职场文书
奶茶店创业计划书范文
2014/01/17 职场文书
投资协议书范本
2014/04/21 职场文书
2014市府办领导班子“四风问题”对照检查材料思想汇报
2014/09/24 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
安全保证书格式
2015/02/28 职场文书
详解运行Python的神器Jupyter Notebook
2021/06/03 Python
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript