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 应用来说,大部分的系统在用户登录时都要求用户输入验证码,验证码的类型的很多,有字母数字的,有汉字的,甚至还要用户输入一条算术题的答案的,对于系统来说使用验证码可以有效果的防止采用机器猜测 ...
随机推荐
- 按下home键,重新打开,应用重启
其实不是重启,只是重新打开了luncher的那个activity.只要通过判断把它finish,就会显示按下home键前的页面. 解决方法: 在重启的页面中加入一下代码,注意加在setContentV ...
- Tree 树形控件
用清晰的层级结构展示信息,可展开或折叠. 基础用法 基础的树形结构展示. <el-tree :data="data" :props="defaultProps&qu ...
- ssh 的一个坑
概述 今天我碰到 fabric 和 ssh 的一个坑,记录下来,供以后开发时参考,相信对其他人也有用. ssh 今天用 ssh 登录远程服务器用不了 npm,查了下,发现原因是: ssh登录时不会加载 ...
- [java][转]安装ADT的时候,提示“Cannot complete the install because one or more required items could not be
今天在安装ADT的时候,提示“Cannot complete the install because one or more required items could not be found. S ...
- ButterKnifer使用
ButterKnifer使用 1.集成 github地址: https://github.com/JakeWharton/butterknife 1.1在主Moduel中的使用 在主moduel中的b ...
- Initializer for conditional binding must have Optional type, not 'String'
今天看到问Swift问题: Initializer for conditional binding must have Optional type, not 'String' 以前没遇到过这个问题, ...
- 使用robotframework做接口测试二——处理响应数据
初使用RequestsLibrary做接口测试时,你会不会感到困惑,为什么会有${resp.content}, ${resp.status_code}这样的写法,这个status_code什么鬼,f5 ...
- Sqlserver实现故障转移 — 加域(2)
目的:将计算机添加到域中, 域控的建立详见:https://www.cnblogs.com/xiaoerlang90/p/9224745.html 域控: 名称:dcTest.com IP: 192. ...
- Java ——注释 命名
注释 1.类在每个类前面必须加上类注释,注释模板如下:/*** Copyright (C), 2006-2010, ChengDu Lovo info. Co., Ltd.* FileName: Te ...
- 技术简历写这么写,才能得到BAT面试官们的青睐
公众号[程序员江湖] 作者陆小凤,985 软件硕士,阿里 Java 研发工程师,在技术校园招聘.自学编程.计算机考研等方面有丰富经验和独到见解,目前致力于分享程序员干货和学习经验,同时热衷于分享作为程 ...