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

How to setItem with ruby in the localStorage of a browser before I start my selenium scripts

本文关键字:localStorage item 设置 ruby 浏览器 我的 启动 selenium 脚本      更新时间:2023-09-26

在启动selenium脚本之前,我试图在浏览器的localStorage中设置item

我试图用这个命令清除本地存储

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

,它适用于firefox浏览器。然后要设置一个项目,我尝试

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

已执行命令,但未更新值。

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

我使用的是Selenium webdriver和ruby

你试过了吗:

driver.execute_script("<javascript command>")

而不是使用driver.get ?这将实际执行命令。您还可以使用开发人员工具的JavaScript控制台测试您想要运行的命令。

我找到了另一种通过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中是否有项。我确信它是。

ref: Selenium WebDriver 3.12.0