通过向浏览器中添加 cookie 可以绕过登录的验证码,这是比较有意思的一种解决方案。我们可以在用户登录之前,通过 add_cookie()方法将用户名密码写入浏览器 cookie ,再次访问系统登录链接将自动登录。例如下面的方式:
.... #访问 xxxx 网站
driver.get("http://www.xxxx.cn/")
#将用户名密码写入浏览器 cookie
driver.add_cookie({'name':'Login_UserNumber', 'value':'username'})
driver.add_cookie({'name':'Login_Passwd', 'value':'password'})
#再次访问 xxxx 网站,将会自动登录
driver.get("http://www.xxxx.cn/")
time.sleep(3)
.... driver.quit()
.... #访问 xxxx 网站 driver.get("http://www.xxxx.cn/") #将用户名密码写入浏览器 cookie driver.add_cookie({'name':'Login_UserNumber', 'value':'username'}) driver.add_cookie({'name':'Login_Passwd', 'value':'password'}) #再次访问 xxxx 网站,将会自动登录 driver.get("http://www.xxxx.cn/") time.sleep(3) .... driver.quit()
.... #访问 xxxx 网站
driver.get("http://www.xxxx.cn/")
#将用户名密码写入浏览器 cookie
driver.add_cookie({'name':'Login_UserNumber', 'value':'username'})
driver.add_cookie({'name':'Login_Passwd', 'value':'password'})
#再次访问 xxxx 网站,将会自动登录
driver.get("http://www.xxxx.cn/")
time.sleep(3)
.... driver.quit()
使用 cookie 进行登录最大的难点是如何获得用户名密码的 name ,如果找到不到 name 的名字,就没办法向 value 中输用户名、密码信息。笔者的建议是可以通过 get_cookies()方法来获取登录的所有的 cookie 信息,从而进行找到用户名、密码的 name 对象的名字;当然,最简单的方法还是询问前端开发人员。