selenium+python,driver.add_cookie()跳过登录验证码

当登录功能需要验证码时,我们可以使用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,如下图
selenium+python,driver.add_cookie()跳过登录验证码_第1张图片

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()#刷新页面 

你可能感兴趣的:(selenium)