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

 更新时间:2018年09月04日 09:33:59   作者:桃乐丝  
这篇文章主要介绍了selenium+python实现自动化登录的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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的方法,但是我使用的时候出现找不到情况,怀疑是浏览器版本不匹配的原因。

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

相关文章

  • Django ORM数据库操作Python化艺术探索

    Django ORM数据库操作Python化艺术探索

    这篇文章主要介绍了Django ORM数据库操作Python化艺术探索,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Python matplotlib实现散点图的绘制

    Python matplotlib实现散点图的绘制

    Matplotlib作为Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。本文将利用Matplotlib库绘制散点图,感兴趣的可以了解一下
    2022-03-03
  • 对python dataframe逻辑取值的方法详解

    对python dataframe逻辑取值的方法详解

    今天小编就为大家分享一篇对python dataframe逻辑取值的方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python时间time模块处理大全

    python时间time模块处理大全

    这篇文章主要给大家介绍了关于python时间time模块处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • python绘制玫瑰花情人节表白

    python绘制玫瑰花情人节表白

    这篇文章主要介绍了python绘制玫瑰花,文章基于python的相关资料展开主题详细介绍,具有一定的参考价值,想情人节花式表白的小伙伴可以参考一下哟
    2022-06-06
  • Python类super()及私有属性原理解析

    Python类super()及私有属性原理解析

    这篇文章主要介绍了Python类super()及私有属性原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 使用Pyqt5制作屏幕录制界面功能

    使用Pyqt5制作屏幕录制界面功能

    这篇文章主要介绍了使用Pyqt5制作屏幕录制界面,主要介绍如何使用ffmpeg将同时录制的屏幕录像和音频合成为有声音的屏幕录像,需要的朋友可以参考下
    2022-04-04
  • python中使用xlrd读excel使用xlwt写excel的实例代码

    python中使用xlrd读excel使用xlwt写excel的实例代码

    这篇文章主要介绍了python中使用xlrd读excel使用xlwt写excel的实例代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-01-01
  • python定间隔取点(np.linspace)的实现

    python定间隔取点(np.linspace)的实现

    今天小编就为大家分享一篇python定间隔取点(np.linspace)的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 在Python中定义和使用抽象类的方法

    在Python中定义和使用抽象类的方法

    提起Java的抽象类大家都比较熟悉,Python中我们可以使用abc模块来构建抽象类,这里就为大家讲解在Python中定义和使用抽象类的方法
    2016-06-06

最新评论