遇到问题:以前一直能用的脚本忽然跑不通了,仔细一看原来是研发新加了图片验证码......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)