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动态加载模块的3种方法
Nov 22 Python
在Python中使用__slots__方法的详细教程
Apr 28 Python
Python科学计算之Pandas详解
Jan 15 Python
python批量替换多文件字符串问题详解
Apr 22 Python
解决pycharm运行时interpreter为空的问题
Oct 29 Python
在pandas中遍历DataFrame行的实现方法
Oct 23 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
Dec 05 Python
Python with标签使用方法解析
Jan 17 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
Jul 23 Python
Python 爬虫性能相关总结
Aug 03 Python
Python如何实现远程方法调用
Aug 07 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
Dec 14 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
php 多关键字 高亮显示实现代码
2012/04/23 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
2012/06/17 PHP
php获取从html表单传递数组的方法
2015/03/20 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
jquery分页插件AmSetPager(自写)
2013/04/15 Javascript
js使用eval解析json实例与注意事项分享
2014/01/18 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
2015/10/24 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
2016/04/28 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
2017/11/17 Javascript
VUE 使用中踩过的坑
2018/02/08 Javascript
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
使用mixins实现elementUI表单全局验证的解决方法
2019/04/02 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
vue-simple-uploader上传成功之后的response获取代码
2020/09/07 Javascript
举例讲解Python中的身份运算符的使用方法
2015/10/13 Python
python实现的二叉树定义与遍历算法实例
2017/06/30 Python
Python Xml文件添加字节属性的方法
2018/03/31 Python
Python requests发送post请求的一些疑点
2018/05/20 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
Python基于pandas绘制散点图矩阵代码实例
2020/06/04 Python
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
一份报关员的职业规划范文
2014/01/08 职场文书
消防安全宣传标语
2014/06/07 职场文书
办理信用卡收入证明范例
2014/09/13 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python
微信小程序结合ThinkPHP5授权登陆后获取手机号
2021/11/23 PHP