当登录功能需要验证码时,我们可以使用driver.add_cookie()方法跳过验证码
1、首先看wevdriver中add_cookie方法:
def add_cookie(self, cookie_dict):
"""
Adds a cookie to your current session.
:Args:
- cookie_dict: A dictionary object, with required keys - "name" and "value";
optional keys - "path", "domain", "secure", "expiry"
Usage:
driver.add_cookie({'name' : 'foo', 'value' : 'bar'})
driver.add_cookie({'name' : 'foo', 'value' : 'bar', 'path' : '/'})
driver.add_cookie({'name' : 'foo', 'value' : 'bar', 'path' : '/', 'secure':True})
"""
self.execute(Command.ADD_COOKIE, {'cookie': cookie_dict})
可知我们使用该方法需要传一个cookie_dict参数
2、这个cookie_dict,我们可以通过抓包工具,获取cookie,如下图
3、在代码中使用,举例代码如下:
ck01 = {
u'domain': u'.ggg.com',
u'name':u'SWOFT_SESSION_ID',
u'value': u'aaaaaaaaaaaaaaaaaaaaaaaaaa',
u'expiry': 1767196799,
u'path': u'/',
u'httpOnly': True,
u'secure': False
}
ck02 = {
u'domain': u'.ggg.com',
u'name':u'AUTH_TOKEN',
u'value': u'bbbbbbbbbbbbbbbbbbbbbbbbb',
u'expiry': 1767196799,
u'path': u'/',
u'httpOnly': True,
u'secure': False
}
ck03 = {
u'domain': u'.ggg.com',
u'name':u'PHPSESSID',
u'value': u'cccccccccccccccccccccccccccccccc',
u'expiry': 1767196799,
u'path': u'/',
u'httpOnly': True,
u'secure': False
}
driver.get("https://m.xxx.com/page/User/")
driver.add_cookie(ck01)
driver.add_cookie(ck02)
driver.add_cookie(ck03)
driver.refresh()#刷新页面