Python如何基于selenium实现自动登录博客园


Posted in Python onDecember 16, 2019

这篇文章主要介绍了Python如何基于selenium实现自动登录博客园,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

需要做的准备:

本文章是使用Chrome,所以需要Chormedriver.exe,具体的下载过程可以百度查到

Selenium是一种自动化测试工具,能模拟浏览器的行为,所以今天我就模拟一下浏览器登陆博客园的行为。

首先,分析问题,登陆博客园需要做些什么:

1.打开浏览器

2.输入博客园主页的网址

3.点击登陆按钮,等待页面跳转

4.输入账号密码,点击登陆

知道了步骤,接下来我们用代码来实现它:from selenium import webdriverimport time#创建登陆类

from selenium import webdriver
 
import time
 
 
class Loadup:
  def __init__(self,username,password):
    self.username = username
    self.password = password
    self.driver = webdriver.Chrome()
 
  def closeBrowser(self):
    self.driver.close()
 
  def login(self):
    driver = self.driver
    driver.get('https://www.cnblogs.com/')
    time.sleep(2)
    # 使用xpath的方法来定位元素
    login_button = driver.find_element_by_xpath("//a[@onclick='login();return false']")
    login_button.click()
    time.sleep(2)
    # 使用xpath的方法来定位元素
    username_elem = driver.find_element_by_xpath("//input[@name='LoginName']")
    # 使用xpath的方法来定位元素
    username_elem.clear()
    username_elem.send_keys(self.username)
 
    # 使用xpath的方法来定位元素
    password_elem = driver.find_element_by_xpath("//input[@name='Password']")
    password_elem.clear()
    password_elem.send_keys(self.password)
 
    #  定位登陆按钮
    loadup_button = driver.find_element_by_xpath("//span[@class='ladda-label']")
    loadup_button.click()
    time.sleep()
 
Leslie_ChanId = Loadup("176******","*******") #在此输入自己的帐号和密码
Leslie_ChanId.login()

运行程序:

Python如何基于selenium实现自动登录博客园

可以看到成功登陆,仔细看,会发现“Chrome正在受自动测试软件的控制”,说明是selenium正在操作浏览器。期间,人工也是可以操作浏览器的。

后言:

在测试的过程中,可能会出现博客园的滑动图片验证,可能是因为频繁操作引起,以我目前所学很难实现自动滑正确的图片,所以需要人为的去滑动图片。

使用driver定位元素的方法不止有xpath,还可以通过id,name,linkt_text等等

使用selenium进入网页后,可以做很多操作,是一种更方便于爬取动态网页的方法。

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

Python 相关文章推荐
在Python中使用matplotlib模块绘制数据图的示例
May 04 Python
基于python实现的抓取腾讯视频所有电影的爬虫
Apr 22 Python
python reduce 函数使用详解
Dec 05 Python
Python数据结构与算法之完全树与最小堆实例
Dec 13 Python
python opencv实现任意角度的透视变换实例代码
Jan 12 Python
浅谈numpy数组中冒号和负号的含义
Apr 18 Python
Python实现字符串的逆序 C++字符串逆序算法
May 28 Python
浅谈tensorflow中几个随机函数的用法
Jul 27 Python
python实现最大子序和(分治+动态规划)
Jul 05 Python
Python在线和离线安装第三方库的方法
Oct 31 Python
python如何调用php文件中的函数详解
Dec 29 Python
Python3接口性能测试实例代码
Jun 20 Python
Python正则表达式急速入门(小结)
Dec 16 #Python
如何基于Python制作有道翻译小工具
Dec 16 #Python
django框架单表操作之增删改实例分析
Dec 16 #Python
Python生成个性签名图片获取GUI过程解析
Dec 16 #Python
Python列表切片常用操作实例解析
Dec 16 #Python
python之pymysql模块简单应用示例代码
Dec 16 #Python
python装饰器使用实例详解
Dec 14 #Python
You might like
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
PHP has encountered an Access Violation
2007/01/15 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
2014/07/10 PHP
比较完整的微信开发php代码
2016/08/02 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
2014/06/23 Javascript
Javascript核心读书有感之类型、值和变量
2015/02/11 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
2016/08/24 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
jQuery实现复选框的全选和反选
2017/02/02 Javascript
Node.js与Sails redis组件的使用教程
2017/02/14 Javascript
vue 左滑删除功能的示例代码
2019/01/28 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
解决vuex数据异步造成初始化的时候没值报错问题
2019/11/13 Javascript
解决ele ui 表格表头太长问题的实现
2019/11/13 Javascript
详解ES6数组方法find()、findIndex()的总结
2020/05/12 Javascript
vue npm install 安装某个指定的版本操作
2020/08/11 Javascript
JS算法教程之字符串去重与字符串反转
2020/12/15 Javascript
Django实现组合搜索的方法示例
2018/01/23 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
使用Pandas的Series方法绘制图像教程
2019/12/04 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
python eventlet绿化和patch原理
2020/11/21 Python
Django 实现图片上传和下载功能
2020/12/31 Python
HTML5 localStorage使用总结
2017/02/22 HTML / CSS
物控部经理职务说明书
2014/02/25 职场文书
业务员自荐信范文
2014/04/20 职场文书
施工安全汇报材料
2014/08/17 职场文书
学生会招新宣传语
2015/07/13 职场文书
《日月潭》教学反思
2016/02/20 职场文书
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫