在我启动selenium脚本之前,如何在浏览器的localStorage中使用ruby setItem

时间:2015-08-28 11:52:11

标签: javascript ruby html5 selenium-webdriver

我在启动selenium脚本之前尝试在浏览器的localStorage中设置setItem

我尝试使用此命令清除本地存储

driver.get('javascript:localStorage.clear();')

它适用于firefox浏览器。然后设置我试过的项目

driver.get('javascript:"window.localStorage.setItem('key','value');", item, value):'

执行命令但不更新值。

我这样做是因为在本地存储中设置一个值后,我能够在窗口中看到一个需要测试的选项卡。

我正在使用Selenium webdriver和ruby。

2 个答案:

答案 0 :(得分:2)

你试过了吗?

driver.execute_script("<javascript command>")

而不是使用driver.get?那将实际执行命令。您还可以使用Developer Tools的JavaScript控制台测试要运行的命令。

答案 1 :(得分:0)

我找到另一种通过Selenium webdriver设置和获取localStorage的方法。 安装Watir后,您可以在irb模式下键入代码:

require 'watir'
browser = Watir::Browser.new # Use webdriver to open chrome.
browser.goto 'http://someurl_that_local_storage_accessiable'
local_storage = browser.driver.local_storage
local_storage['key'] = 'value'

在irb中使用此代码后,如果localStorage中有项目,您可以检查浏览器。我确定是。

参考:enter image description here