• 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)


  • 相关阅读:
    openlayers方法总结
    AJAX 数据库实例
    AJAX 请求服务器
    得到XMLHttpRequest对象
    AJAX 简介
    AJAX 服务器端的脚本
    HTTP GET 最多发送100个字符
    AJAX XMLHttpRequest 对象
    Dictionary、ArrayList、Hashtable和数组 Array 的区别
    AJAX 请求实例
  • 原文地址:https://www.cnblogs.com/qingqing-919/p/11230200.html
Copyright © 2020-2023  润新知