使用 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 本地存储中读取的主要内容,如果未能解决你的问题,请参考以下文章