[Selenium] Android HTML5 中 Web Storage
在 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的更多相关文章
- [Selenium] Android HTML5 中 Application Cache
HTML5 中引入了 Application Cache,这意味着 Web 应用程序可以被缓存到本地,且可在没有网络的情况下也能访问该 Web 应用程序 Application Cache 在以下3个 ...
- HTML5中Web存储
HTML5 中web存储是一个比cookies更好的一个本地存储方式. 那么什么是HTML5存储呢? 使用HTML5可以在本地存储用户浏览的数据,HTML5技术没有出来之前是使用cookies进行本地 ...
- Html5的学习之旅-Html5的web Storage概述(16)
在html5中除了canvas,另外一个非常重要的功能是客户端本地存储web storage,之前可以在用户端Cookies存贮用户名等信息,后来发现Cookies存储存在以下问题: 大小:Cooki ...
- HTML5之WEB Storage
什么是HTML5 web storage? 使用HTML5,web页面能够使用用户的浏览器本地保存数据. 在曾经,通常我们使用cookie来保存用户数据.然而使用web存储更加安全和高速.数据不再包括 ...
- [Selenium] 操作 HTML5 中的 Canvas 绘制图形
测试 http://literallycanvas.com/ 以 Chrome Driver 为例阐述,通过 Actions 在 Canvas 上绘制一个封闭图形.对于 Canvas 上的操作,推荐 ...
- HTML5存储 ——Web Storage(localStorage 和 sessionStorage)
一.localStorage对象临时储存API 方法: 1.localStorage.setItem(key,value)---设置存储内容 2.localStorage.getItem(key)-- ...
- HTML5本地存储 Web Storage
Web Storage基本介绍 HTML5 定义了本地存储规范 Web Storage , 提供了两种存储类型 API sessionStorage 和 localStorage,二者的差异主要是数 ...
- HTML5 高级系列:web Storage
前言 HTML5 的 web Storage 存储方式有两种:localStorage 和 sessionStorage. 这两种方式都是通过键值对保存数据,存取方便,不影响网站性能.他们的用法相同, ...
- HTML5 Web Storage 特性
原文地址: Using HTML5 Web Storage 原文日期: 2010年06月28日 翻译日期: 2013年08月12日 当下Web开发领域最火爆的词语当属 HTML5.HTML5标准的新特 ...
随机推荐
- Linux主机被SSH精神病(Psychos)暴力攻破后成为肉鸡的攻防过程
近日公司局域网突然变得非常慢,上网受到很大影响,不仅仅是访问互联网慢,就连访问公司内部服务器都感到异常缓慢.于是对本局域网网关进行测试: $ ping 10.10.26.254 发现延时很大, ...
- hdu - 3594 Cactus (强连通)
http://acm.hdu.edu.cn/showproblem.php?pid=3594 判断给定的图是否是强连通的,并且每条边都只属于一个连通分量. 判断强连通只需要判断缩点之后顶点数是否为1即 ...
- Annotation基本概念,作用以及举例说明。
Annotation即注解,是Jav5新特征,Annotatio提供一些本来不属于程序的数据,用来将任何的信息或元数据(metadata)与程序元素(类.方法.成员变量等)进行关联.为程序的元素(类. ...
- Spring基于Setter函数的依赖注入(DI)
以下内容引用自http://wiki.jikexueyuan.com/project/spring/dependency-injection/spring-setter-based-dependenc ...
- react+flask+antd
待学习: 1.https://www.cnblogs.com/jlj9520/p/6625535.html 2.http://python.jobbole.com/87112/ 3.
- call lua function from c and called back to c
Just a simple example: --The c file: #include <stdio.h> #include "lua.h" #include & ...
- PS 如何把大嘴变小嘴
Photoshop整容教程:让MM美唇大嘴变小嘴 2009-06-17 14:15作者:佚名出处:天极网软件频道责任编辑:王健 下面就开始实际操作了. 1.首先从Photosh ...
- centos 重新获取IP hdcp 模式
centos 重新获取IP hdcp 模式 dhclient -r →release dhclient →renew
- weex 项目开发(二) weex 与 weexpack 的区别
1.weex 与 weexpack 即 weex-toolkit 与 weexpack 的区别 weex-toolkit 初始化的项目是针对开发单个 Weex 页面而设计的,也就是说这样的项目只包括 ...
- Effective C++ 条款八 别让异常逃离析构函数
class DBConn //这个class用来管理DBConnction对象 { public: //自己设计一个新的DBConn接口 方法3 void close() { db.close() ...