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)


  • 相关阅读:
    【NX二次开发】修改dlx对话框标题的方法
    【NX二次开发】导入x_t,UF_PS_import_data
    设置NX欢迎界面
    [转]10个顶级的CSS UI开源框架
    [转] 多线程 《深入浅出 Java Concurrency》目录
    [转] JAVA多线程和并发基础面试问答
    [转]StuQ 技能图谱(全套13张)
    [转] MongoDB shell 操作 (查询)
    搜集好的java技术帖子,持续更新,java程序员的要求
    [转]JAVA程序员一定知道的优秀第三方库(2016版)
  • 原文地址:https://www.cnblogs.com/qingqing-919/p/11230200.html
Copyright © 2011-2022 走看看