Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium 如何通过WebdriverIO和Appium访问Cordova应用程序的本地存储?_Selenium_Cordova_Jasmine_Webdriver Io_Webdriver Io V4 - Fatal编程技术网

Selenium 如何通过WebdriverIO和Appium访问Cordova应用程序的本地存储?

Selenium 如何通过WebdriverIO和Appium访问Cordova应用程序的本地存储?,selenium,cordova,jasmine,webdriver-io,webdriver-io-v4,Selenium,Cordova,Jasmine,Webdriver Io,Webdriver Io V4,我目前正试图为我们用Angular编写的cordova应用程序编写一些自动化测试。 我当前的设置如下: 版本: appium: 1.7.2 wdio-appium-service: 0.2.3 webdriverio: 4.11.0 wdio.conf.js exports.config={ 港口:4723, 日志级别:“错误”, 能力:[{ 平台名称:“Android”, 平台版本:“8.1”, deviceName:'任何', app:'../cordova_app/platforms/a

我目前正试图为我们用Angular编写的cordova应用程序编写一些自动化测试。 我当前的设置如下:

版本:

appium: 1.7.2
wdio-appium-service: 0.2.3
webdriverio: 4.11.0
wdio.conf.js

exports.config={
港口:4723,
日志级别:“错误”,
能力:[{
平台名称:“Android”,
平台版本:“8.1”,
deviceName:'任何',
app:'../cordova_app/platforms/android/app/build/outputs/apk/debug/app debug.apk',
autoWebview:正确,
自动签名权限:true
}],
//规格:['./测试/spec/***.js'],
规范:['./tests/spec/login.js'],
服务:['appium'],
记者:['规格'],
框架:“茉莉花”,
茉莉花:{
defaultTimeoutInterval:90000
}
}
tests/spec/login.js


描述('语言和市场选择过程',()=>{
在每个之前(()=>{
浏览器超时(“隐式”,2000年);
});
之后(()=>{
browser.reload();
});
它('应该经过登录过程',()=>{
const selectCountryBtn=$('.fsr-login\uu market-chooser');
选择CountryBTN。单击();
//到目前为止一切正常
localStorage('POST',{key:'test',value:'test123});
//失败:未知错误:调用函数结果缺少“值”
});
});
当我在Android 8.1 emulator上运行此测试时,测试一到达localstorage部分就会崩溃,错误如下:

Failed: unknown error: call function result missing "value"
Error: An unknown server-side error occurred while processing the command.
at localStorage("POST", [object Object]) - index.js:316:3
描述了WebdriverIO的localStorage API

我做错了什么?

不提供功能
localStorage


我想这是你的问题。另外,如果您使用3.4版本,请检查Appium部分,而不仅仅是协议。本机应用程序没有与浏览器相同的本地存储,您无法轻松访问它

我同意
localStorage
操作是一项棘手的工作,尤其是跨浏览器、跨平台等。在处理应用程序cookie或本地存储时,我默认使用简单的JS命令来实现我的目标

因此,我建议您尝试使用命令来操纵浏览器的:

结果:


webdriverio有
browser.execute("localStorage.setItem('socialMediaRuinsTheWorld', true)");
browser.execute((keyName, keyValue) => { 
  localStorage.setItem(keyName, keyValue); 
}, "testing", "theLocalStorage");