selenium+python实现自动化登录的方法
作者:桃乐丝 发布时间:2021-08-07 13:38:08
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的方法,但是我使用的时候出现找不到情况,怀疑是浏览器版本不匹配的原因。
来源:https://www.cnblogs.com/taurusfy/p/7007014.html
猜你喜欢
- 1. 正则表达式基础1.1. 简单介绍正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个
- javascript sort()排序用法sort() 方法用于对数组的元素进行排序,并返回数组。默认排序顺序是根据字符串UniCode码。
- 但是如果是让你接手一个二等残废的网站,并让你在上面改版,而且不能推翻式改版,只能逐步替换旧的程序,那么你会非常痛苦,例如我遇到的问题: 问题
- 摘要什么是python对象的标识python对象相等的判断自定义python对象相等的条件python对象的标识python对象标识就是py
- 我就废话不多说了,大家还是直接看代码吧~func ReadLine(fileName string) ([]string,error){f,
- 废话不多说了,直接把我写的timeit函数分享给大家,具体内容如下:/** * Compute the delay to execute a
- 最近,W3C的一项公告称,在W3C与XHTML2的合同于今年年底到期后将不会续签。这意味着W3C停止了对XHTML2的开发,转而大力支持HT
- 开启Web服务1.基本方式Python中自带了简单的服务器程序,能较容易地打开服务。在python3中将原来的SimpleHTTPServe
- Django项目中为什么会加载静态时会失败呢?原因:django部署方式比较特别,采用静态文件路径:STATICFILES_DIRS的部署方
- 如何做一个密码“生成器”?randompassword.asp<% Dim i, intNum,&nbs
- Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4
- 并行查询其优势就是可以通过多个线程来处理查询作业,从而提高查询的效率。SQL Server数据库为具有多个CPU的数据库服务器提供并行查询的
- 更新 2016/8/9:最近发现目标网站已经屏蔽了这个
- 今天简单使用了一下python的re模块和lxml模块,分别利用的它们提供的正则表达式和xpath来解析页面源码从中提取所需的title,x
- 很多开发者说自从有了 Python/Pandas,Excel 都不怎么用了,用它来处理与可视化表格非常快速。下面我来举几个例子。1. 删除重
- 国庆假期快到了,想查查还有几天几小时到假期,这对程序员
- 一、使用PyChram的正则首先,小编讲的不是爬取ip,而是讲了解PyCharm的正则,这里讲的正则不是Python的re模块哈!而是PyC
- 概述本文主要介绍一种降维方法,PCA(Principal Component Analysis,主成分分析)。降维致力于解决三类问题。1.
- 代码如下:<?php$a;$b = false;$c = '';$d = 0;$e = null;$f = array
- 左右结构是平常页面中最经常看到的结构,简洁一些的页面就会使用边框将左右两边隔开,但往往由于左右两边的内容可能是不等高的,所以就会有一高一低的