python-webdriver中添加cookie,解决添加了图片验证码的问题
遇到问题:之前一直能用的脚本突然跑不通了,仔细一看原来是研发新加了图片验证码......
解决问题: 手动抓取了cookie并塞进去,解决问题。当然如果你的cookie有效期太短或者是随着会话关闭就失效的,此办法并不合适。
代码第一版:
def Login(driver):
cookies = { 'name': 'wx_sid', 'value': '43064da8ec6a117d16c34b59bdf6116abys4s99***'}
driver.add_cookie(cookies)
driver.get("http://admin.***.com/index/login")
driver.quit()
if __name__=='__main__':
driver = webdriver.Chrome(executable_path="d:\\chromedriver")
Login(driver) 执行时发现启动浏览器后没有访问指定的地址,在网上查资料原因是 塞cookie时找不到塞到哪里。 解决办法是加入domain或者先访问一下要塞入地址的链接。 代码第二版:
def Login(driver):
driver.get("http://admin.***.com/index/login")
cookies = { 'name': 'wx_sid', 'value': '43064da8ec6a117d16c34b59bdf6116abys4s99***','path': '/','domain': '.admin.***.com'}
driver.add_cookie(cookies)
driver.get("http://admin.***.com/index")
if __name__=='__main__':
driver = webdriver.Chrome(executable_path="d:\\chromedriver")
Login(driver)
先访问后发现还是塞不进去,再查资料,解决办法是需要刷新一下页面。
代码第三版:
def Login(driver):
driver.get("http://admin.***.com/index/login")
cookies = { 'name': 'wx_sid', 'value': '43064da8ec6a117d16c34b59bdf6116abys4s99***','path': '/','domain': '.admin.***.com'}
driver.add_cookie(cookies)
driver.refresh() # 刷新页面
driver.get("http://admin.***.com/index")
if __name__=='__main__':
driver = webdriver.Chrome(executable_path="d:\\chromedriver")
Login(driver)
刷新后终于成功了,切换环境,从测试环境切到线上环境,再次执行又失败了,反复找原因,终于.... 线上环境用的cookie name是wx这个,测试环境由于跟其他冲突研发自己改成了wx_sid... 所以提醒小伙伴,这个cookie到底应该用哪个最好还是跟对应研发确认好。
最终版线上环境代码:
def Login(driver):
driver.get("http://admin.***.com/index/login")
# 线上环境
cookies = { 'name': 'wx', 'value': '43064da8ec6a117d16c34b59bdf6116abys4s99***','path': '/','domain': '.admin.***.com'}
driver.add_cookie(cookies)
driver.refresh()
driver.get("http://admin.***.com/index")
if __name__=='__main__':
driver = webdriver.Chrome(executable_path="d:\\chromedriver")
Login(driver)
python-webdriver中添加cookie,解决添加了图片验证码的问题的更多相关文章
- js如何在浏览器添加cookie(添加、获取、删除)
首先,简单用js将cookie保存到浏览器中,具体可按F12在这里查看(火狐浏览器) 1.js脚本方法 1)添加cookie方法 //添加cookie var addCookie = function ...
- 转:python webdriver API 之cookie 处理
有时候我们需要验证浏览器中是否存在某个 cookie,因为基于真实的 cookie 的测试是无法通过白盒和集成测试完成的.webdriver 可以读取.添加和删除 cookie 信息.webdrive ...
- Python爬虫:设置Cookie解决网站拦截并爬取蚂蚁短租
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Eastmount PS:如有需要Python学习资料的小伙伴可以加 ...
- python 安装中的错误解决
最近使用python3.5,其中遇到安装中的错误,现在记录下来,提个醒 1 安装setuptools 出现缺少 zlib模块 解决: 1 yum install zlib 2 yum install ...
- python webdriver中对不同下拉框通过文本值的选择
在自动化中python对下拉框的处理网上相对实例比较少,其它前辈写的教程中对下拉也仅仅是相对与教程来说的,比如下面: m=driver.find_element_by_id("Shippin ...
- python Django中的cookie和session
目录 Cookie 1.1获取Cookie 1.2设置Cookie Session 1.数据库Session 2.缓存Session 3.文件Session 4.缓存+数据库Session Cooki ...
- python 文件中的中文编码解决方法
# -*- coding: utf-8 -*- #查看安装的SDK默认的编码字符集在脚本中可以修改你的编码格式, 方法如下:#sys.getdefaultencoding()#reload(sys)# ...
- python下以api形式调用tesseract识别图片验证码
一.背景 之前在博文中介绍在python中如何调用tesseract ocr引擎,当时主要介绍了shell模式,shell模式需要安装tesseract程序,并且效率相对略低. 今天介绍api形式的调 ...
- selenium添加cookie切换到不同环境
背景:网站中需要切环境到预发布,在用谷歌浏览器可以使用工具,但是在selenium启动时,是不会带任何插件,向开发了解下,切换环境本质是添加cookie值,那么这个就简单了 1.使用selenium中 ...
- 转:python webdriver API 之 验证码问题
对于 web 应用来说,大部分的系统在用户登录时都要求用户输入验证码,验证码的类型的很多,有字母数字的,有汉字的,甚至还要用户输入一条算术题的答案的,对于系统来说使用验证码可以有效果的防止采用机器猜测 ...
随机推荐
- js获取当前时间,并格式化为"yyyy-MM-dd HH:mm:ss"
/** * Created by Administrator on 2019/11/15. *指尖敲打着世界 ----一个阳光而又不失帅气的少年!!!. */ // js获取当前时间,并格式化为&qu ...
- LC 652. Find Duplicate Subtrees
Given a binary tree, return all duplicate subtrees. For each kind of duplicate subtrees, you only ne ...
- GB 和 GiB 的区别
GB 和 GiB 的区别 Gibibyte (GiB) is one of the standard units used in the field of data processing and da ...
- 12@365 java上传文件(word、图片等)至服务器
这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用 后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下) ...
- MySQL递归查询父子节点
1.表结构 CREATE TABLE folder( id BIGINT(20) NOT NULL, parent_id BIGINT(20) DEFAULT NULL, PRIMARY KEY id ...
- EditText inputType类型整理
//文本类型,多为大写.小写和数字符号. android:inputType="none"//输入普通字符 android:inputType="text& ...
- NModbus4的使用
步骤1:打开串口 SerialPort port = new SerialPort("COM7") port.BaudRate = ; port.BaudRate = ; port ...
- selenium—alert用法
切换到弹框: switch_to_alert() ① alert.accept() 确认弹框 driver.switch_to_alert().accept() ② alert.dismiss() ...
- linux 下文件上传的两种工具(XFTP5和Putty之pscp)方式
一.使用XFTP(,需要先在LINUX上安装启用FTP服务) 然后,在WINDOWS上启动XFPT6客户端,将下载的文件上传至LINUX 指定目录: 二.使用PUTTY软件安装目录下的PSCP命令 1 ...
- [爬虫] selenium介绍
认识selenium 在爬取百度文库的过程中,我们需要使用到一个工具selenium(浏览器自动测试框架),selenium是一个用于web应用程序测试的工具,它可以测试直接运行在浏览器中,就像我们平 ...