zoukankan      html  css  js  c++  java
  • 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)


  • 相关阅读:
    最全Pycharm教程
    Django系列:(1)PyCharm下创建并运行我们的第一个Django工程
    用pycharm+django开发web项目
    python在不同层级目录import模块的方法
    Android GetTimeAgo(时间戳转换几天前,几分钟前,刚刚等)
    Fresco简单的使用—SimpleDraweeView
    django常用命令
    Android 浅谈 RxAndroid + Retrofit + Databinding
    云计算之路-阿里云上:负载均衡从七层换成四层后的意外发现团队
    云计算之路-阿里云上:因为网络问题,物理机换回虚拟机团队
  • 原文地址:https://www.cnblogs.com/qingqing-919/p/11230200.html
Copyright © 2011-2022 走看看