使用 selenium 从 html 5 本地存储中读取

Posted

技术标签:

【中文标题】使用 selenium 从 html 5 本地存储中读取【英文标题】:Read from html 5 local storage with selenium 【发布时间】:2014-06-04 11:38:38 【问题描述】:

我在 c# 中使用 selenium web 驱动程序。 当我使用 javascript 方法写入本地存储时,它工作正常 (我可以通过检查查看 html 页面中的值),但是如果我尝试从本地存储中读取我刚刚编写的内容,它会返回 Null。 感谢您的帮助。

写作(作品):

IJavaScriptExecutor js = (IJavaScriptExecutor)driver;      
js.ExecuteScript("localStorage.setItem('key','value');");  

读取(返回 Null ):

Object Value= js.ExecuteScript("localStorage.getItem('key')");

【问题讨论】:

Selenium API 有一个local_storage 端点:code.google.com/p/selenium/wiki/JsonWireProtocol#/session/… 【参考方案1】:

首先,你应该返回值,其次你应该将返回值转换为已知类型。

value = (String) js.executeScript("return localStorage.getItem('key')");

【讨论】:

从 selenium 2.42 版本开始,如果驱动程序支持,您可以使用webDriver.getLocalStorage() 目前 getLocalStorage() 仅适用于 Chrome 驱动程序(和 android 驱动程序,据我所知) browser.WebStorage.LocalStorage.GetItem("item")【参考方案2】:

更新问题,在 2018 年使用 c# 你会这样做:

browser.WebStorage.LocalStorage.GetItem("item")

【讨论】:

以上是关于使用 selenium 从 html 5 本地存储中读取的主要内容,如果未能解决你的问题,请参考以下文章

用python+selenium从百度获取本地明日的天气信息并根据温度情况邮件提醒

JavaScript-HTML5 使用本地存储登录,安全吗?

Python3 使用selenium库登陆知乎并保存cookie为本地文件

golang从入门到精通,搭建本地selenium自动化测试环境

如何通过使用 Selenium Grid 将文件从本地计算机传输到远程 Web 服务器来上传文件

selenium2 python自动化测试之利用AutoIt工具实现本地文件上传