在 HTML5 中,Web Storage 这个新特性可让用户将数据存储在本地的浏览器中。在早期的浏览器中可通过 cookies 来完成这个任务,但 Web Storage 会更加安全和高效,且 Web Storage 通过键值对进行存储,只有自身的网页应用才可以访问存储的数据

Web Storage 分为以下2种类型

1. localStorage: 存储的数据永久不会过期

2. sessionStorage: 存储的数据只在当前会话中有效

通过 Chrome 的开发者工具在 Resources 选项卡中可查看 localStorage 和 sessionStorage 的信息

操作 localStorage 示例:

package com.learingselenium.android;

import static org.junit.Assert.assertEquals;

import org.junit.*;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.html5.LocalStorage;

import org.openqa.selenium.html5.WebStorage;

import org.openqa.selenium.android.AndroidDriver;

...

WebDriver driver = new AndroidDriver("http://localhost:8888/wd/hub");

driver.get("http://www.1.com");

LocalStorage localStorage = ((WebStorage) driver).getLocalStorage();

System.out.println("The size of LocalStorage is:" + localStorage.size());

localStorage.setItem("key1", "learningselenium");

System.out.println(localStorage.getItem("key1"));

driver.quit();

...

从执行结果看,localStorage 会保留之前存储的数据。如果需要保证每次运行测试用例时localStorage 都是干净的状态,那么需要在使用 localStorage 前执行以下代码段:

LocalStorage localStorage =  ((WebStorage) driver).getLocalStorage();

localStorage.clear();

操作 sessionStorage 示例:

...

WebDriver driver = new AndroidDriver("http://localhost:8888/wd/hub");

driver.get("http://www.1.com");

SessionStorage sessionStorage = ((WebStorage) driver).getSessionStorage();

System.out.println("The size of sessionStorage is:" + sessionStorage .size());

sessionStorage .setItem("key1", "learningselenium");

System.out.println(sessionStorage .getItem("key1"));

driver.quit();

...

从执行结果看,sessionStorage 不会保留前一次 Session 所存储的数据,即 sessionStorage  中存储的数据只在当前 session 中有效。

[Selenium] Android HTML5 中 Web Storage的更多相关文章

  1. [Selenium] Android HTML5 中 Application Cache

    HTML5 中引入了 Application Cache,这意味着 Web 应用程序可以被缓存到本地,且可在没有网络的情况下也能访问该 Web 应用程序 Application Cache 在以下3个 ...

  2. HTML5中Web存储

    HTML5 中web存储是一个比cookies更好的一个本地存储方式. 那么什么是HTML5存储呢? 使用HTML5可以在本地存储用户浏览的数据,HTML5技术没有出来之前是使用cookies进行本地 ...

  3. Html5的学习之旅-Html5的web Storage概述(16)

    在html5中除了canvas,另外一个非常重要的功能是客户端本地存储web storage,之前可以在用户端Cookies存贮用户名等信息,后来发现Cookies存储存在以下问题: 大小:Cooki ...

  4. HTML5之WEB Storage

    什么是HTML5 web storage? 使用HTML5,web页面能够使用用户的浏览器本地保存数据. 在曾经,通常我们使用cookie来保存用户数据.然而使用web存储更加安全和高速.数据不再包括 ...

  5. [Selenium] 操作 HTML5 中的 Canvas 绘制图形

    测试 http://literallycanvas.com/ 以 Chrome Driver 为例阐述,通过 Actions 在 Canvas 上绘制一个封闭图形.对于 Canvas 上的操作,推荐 ...

  6. HTML5存储 ——Web Storage(localStorage 和 sessionStorage)

    一.localStorage对象临时储存API 方法: 1.localStorage.setItem(key,value)---设置存储内容 2.localStorage.getItem(key)-- ...

  7. HTML5本地存储 Web Storage

    Web Storage基本介绍 HTML5 定义了本地存储规范 Web Storage , 提供了两种存储类型 API  sessionStorage 和 localStorage,二者的差异主要是数 ...

  8. HTML5 高级系列:web Storage

    前言 HTML5 的 web Storage 存储方式有两种:localStorage 和 sessionStorage. 这两种方式都是通过键值对保存数据,存取方便,不影响网站性能.他们的用法相同, ...

  9. HTML5 Web Storage 特性

    原文地址: Using HTML5 Web Storage 原文日期: 2010年06月28日 翻译日期: 2013年08月12日 当下Web开发领域最火爆的词语当属 HTML5.HTML5标准的新特 ...

随机推荐

  1. ajax中没法用response下载文件啊

    ajax 下载不太现实第一,http 不支持直接的二进制传输,二进制数据需要编码 例如base64 ,这点服务器端可以实现第二,客户端获得编码后的文件要转换,js应该也可以第三点,最为致命,js无法操 ...

  2. mysql主从读写分离,分库分表

    1.分表 当项目上线后,数据将会几何级的增长,当数据很多的时候,读取性能将会下降,更新表数据的时候也需要更新索引,所以我们需要分表,当数据量再大的时候就需要分库了. a.水平拆分:数据分成多个表 b. ...

  3. java基础 6 基本类型与运算

    1 包装类型 Integer的缓存池为   -128 - 127: 八个基本类型   占bit  与字节  8 bit = 1 字节 boolean  1     byte  8    char   ...

  4. K8S label 操作

    在部署完成 node 节点集群之后,为了更灵活的操控 node 节点,有时候需要对 node 节点进行对各个 node 节点进行 lable 标签标记. 查看各个节点的信息 [root@porxy02 ...

  5. 【Mybatis】 Mybatis在xml文件中处理大于号小于号的方法【问题】

    处理大于小于号的方法: https://www.cnblogs.com/winner-0715/p/6132755.html 第一种方法:用转义字符把">"和"&l ...

  6. js监听鼠标点击操作

    element.addEventListener('click', function() { /* do stuff here*/ }, false);

  7. MapReduce编程实战之“调试”和"调优"

    本篇内容 在上一篇的"初识"环节,我们已经在本地和Hadoop集群中,成功的执行了几个MapReduce程序,对MapReduce编程,已经有了最初的理解. 在本篇文章中,我们对M ...

  8. 出现异常时直接把e输出比输出e.getMessage()好得多

    之前研究态度不好,出异常时处理草草了事,今天出现问题才觉得该认真对待每个分支.

  9. SolidWorks如何绘制抽壳零件

    1 绘制一个零件,点击抽壳   2 你可以一个一个面选,也可以直接选中一个零件,对他的所有面都薄壳处理(右击弹出菜单选择确定即可)   3 可以用剖视图检查是否抽壳成功   4 对于复杂的零件,一个一 ...

  10. SolidEdge如何打开或关闭自动标注尺寸

    工具-聪慧-自动标注尺寸