selenium自动化测试通过localstorage绕过登陆

引言:

  做自动化测试,尤其是通过page object模式做UI自动化测试,登陆是个很麻烦的事情,比如你想对某个页面进行测试,一般直接链接到那个页面是不可能的,总是需要先登陆,然后刷新页面才能到想要的页面;而登录总不能每次都通过输入用户名、密码、验证码等登录,这就比较不智能,不自动化了;之前都是通过cookie来绕过登录,driver.add_cookie({‘name‘: ‘cookie_key‘, ‘value‘: ‘cookie_value‘});但是HTML5发布后,慢慢不在通过cookie来记录用户的信息,而是使用localstorage,什么是localstorage??请自己百度一下;

正文:

  先上代码,这是我们公司内网的系统,估计看这文章的朋友,直接用我的代码会执行不了,可以看下基本思想,然后融会贯通到自己的系统中;

#coding:utf-8

from selenium import webdriver
import time
import requests

def get_token():
    api_url = ‘http://192.168.0.212:808/api/gwy/user/login.json‘
    request_data = ‘data={"param":{"mobile":"18800080008","password":"96e79218965eb72c92a549dd5a330112"},"sign":"2b78538442997ea1b47eda413c91bf95"}‘
    HEADER = {
        ‘Content-Type‘: ‘application/x-www-form-urlencoded; charset=UTF-8‘
    }

    res = requests.post(api_url, data=request_data, headers=HEADER).json()
    return res

driver = webdriver.Chrome()
driver.get(‘http://192.168.0.212:808/html/marketTypeManagement.html‘)

time.sleep(3)
# driver.add_cookie({‘name‘: ‘token‘, ‘value‘: ‘f53fe0f1-504b-4cac-adde-eb17e42fde72‘})
driver.execute_script(‘localStorage.setItem("token", arguments["token"]);‘, get_token()[‘data‘])

time.sleep(5)
driver.quit()

解读一下代码:

  跟开发确认,是通过localstorage中的token字段来验证用户登录信息;所以首先一步是拿到登录的token,我这里是通过定义一个get_token()函数来调登录的接口,从接口返回值中拿到token值;

  用的是requests模块模拟发起http请求,获取到返回值后,提取token值;

  然后进行测试,主要是用执行一段js语法的脚本代码来想localStorage中塞入获取到的token值,然后刷新页面,就能绕过登录,直接到你指定的页面了;

driver.execute_script(‘localStorage.setItem("token", arguments["token"]);‘, get_token()[‘data‘])
时间: 2024-11-02 13:53:51

selenium自动化测试通过localstorage绕过登陆的相关文章

selenium自动化测试工具模拟登陆爬取当当网top500畅销书单

selenium自动化测试工具可谓是爬虫的利器,基本动态加载的网页都能抓取,当然随着大型网站的更新,也出现针对selenium的反爬,有些网站可以识别你是否用的是selenium访问,然后对你加以限制. 当当网目前还没有对这方面加以限制,所以今天就用这个练习熟悉一下selenium操作,我们可以试一下爬取一下当当网top500的畅销书单的相关信息,页面如下: 虽然这个页面不用登录就可以进来,但是我们可以随便试一下模拟登陆,直接在这个页面上面点击登录进入登录界面,然后会弹出一下窗口, 这是百分百会

selenium自动化测试(1):环境搭建

Selenium是一款优秀的WEB自动化测试工具,它功能强大,易于使用,支持多种平台.多种浏览器和多种开发语言.这里介绍使用python+selenium进行自动化测试的一些基础知识. 在Windows下搭建测试环境,首先需要下载Python,Selenium应该还不支持Python 3.x系列,所以最好选择Python 2.x,注意区分32位和64位. Python的安装特别简单,需要提醒的是,安装路径中千万不要包含空格(最好也别包含中文),否则后面使用pip安装扩展包的时候可能会失败!其他的

python 学习笔记,selenium 自动化测试 更新开始

学python快两个月了,因为时间很少,经常都是每天只能看半个到一个钟的时间,有些东西看了又忘记了!所以从今天起,每天更新自己学习python 和 selenium 自动化测试的总觉,每天进步一点,好记性不如烂笔头,就从今天开始吧! -------------I Will Show You How Greate I am!

JavaScript(Node.js)+ Selenium自动化测试

Selenium is a browser automation library. Most often used for testing web-applications, Selenium may be used for any task that requires automating interaction with the browser. Selenium是一个浏览器自动化测试库,大多时候我们用它来测试web应用,Selenium 可以胜任任何在浏览器上自动化测试的任务. 众所周知,

Selenium自动化测试问题

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output: *** LOG addons.manager: Application has been upgraded *** LOG addons.xpi: startup *** LOG addons.xpi: Skipping

Selenium自动化测试-进阶2-框架篇

前面的文章已经讲述了 Selenium自动化的入门知识,不知道各位看官看懂没有,有不懂的请留言. 接下来,开始讲解 Selenium自动化测试进阶知识. 首先讲解:自动化测试的核心: 利用自动化程序代替手工,实现复杂繁琐的测试. 所以:自动化测试的运行必须是准确的,否则费时费力. 什么样的程序是准确的?? 准确的自动化程是 95%以上Error是真正的错误.否则,自动化测试就是失败的. 那么,要怎么提高自动化测试运行的准确率呢? 把基础学扎实了! 要学好自动化,Java要学好,然后是 JS,当然

自动化测试学习笔记1——Python + Selenium自动化测试环境配置

Python + Selenium自动化测试环境配置(Windows平台) 准备工具: 下载python    http://python.org/getit/ 下载setuptools http://pypi.python.org/pypi/setuptools 下载pip https://pypi.python.org/pypi/pip 下载selenium   https://pypi.python.org/pypi/selenium 下载selenium服务端 https://code.

用Selenium自动化测试android wap页面

利用Selenium自动化测试android wap页面:http://blogs.360.cn/360qtest/2014/04/01/%E5%88%A9%E7%94%A8selenium%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95android-wap%E9%A1%B5/

基于python语言的Selenium自动化测试

  一.Selenium简介 Selenium是一个web自动化应用测试工具,还支持所有的web的管理任务自动化.并且开源免费,也是一个web自动化轻量级框架.它支持多种浏览器.跨平台.跨操作系统.支持多种编程语言编写脚本,还能进行分布式测试用例的执行. Selenium经历三个版本,Selenium1.Selenium2.Selenium3.它不是单独的一个工具,而是由一些类库.插件.工具等组合而成.主要的工具: Selenium IDE:Selenium IDE是嵌入火狐浏览器中的一个插件,