python-webdriver中添加cookie,解决添加了图片验证码的问题

遇到问题:以前一直能用的脚本忽然跑不通了,仔细一看原来是研发新加了图片验证码......web

解决问题: 手动抓取了cookie并塞进去,解决问题。固然若是你的cookie有效期过短或者是随着会话关闭就失效的,此办法并不合适。chrome

代码初版:浏览器

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)
相关文章
相关标签/搜索