Ruby 如何将权限设置为布尔类型?

Ruby 如何将权限设置为布尔类型?,ruby,selenium-webdriver,appium,appium-android,appium-desktop,Ruby,Selenium Webdriver,Appium,Appium Android,Appium Desktop,我试图让我的测试自动授予caps权限,但每次尝试时,我都会收到一个InvalidArgumentError。我怎样才能解决这个问题 我正在尝试的是: require 'rubygems' require 'em/pure_ruby' require 'appium_lib' require 'eventmachine' require 'selenium-webdriver' caps = {} caps["app"] = "C:/apk/Pb_debug_4.1.19-DEBUG1-2019

我试图让我的测试自动授予caps权限,但每次尝试时,我都会收到一个InvalidArgumentError。我怎样才能解决这个问题

我正在尝试的是:

require 'rubygems'
require 'em/pure_ruby'
require 'appium_lib'
require 'eventmachine'
require 'selenium-webdriver'

caps = {}
caps["app"] = "C:/apk/Pb_debug_4.1.19-DEBUG1-20190416T143413Z-001/Pb_debug_4.1.19-DEBUG1/Pb_debug_4.1.19-DEBUG.apk"
caps["platformName"] = "Android"
caps["platformVersion"] = "7.0"
caps["deviceName"] = "EMULATOR29X0X6X0"
caps["autoAcceptAlerts"] = "True"
caps["newCommandTimeout"] = "3600"
caps["deviceReadyTimeout"] = "3600"
caps["automationName"] = "UiAutomator2"
caps["autoGrantPermissions"] = "True"
错误:

InvalidArgumentError: 'autoGrantPermissions' must be of type boolean: 'autoGrantPermissions' must be of type boolean (Selenium::WebDriver::Error::InvalidArgumentError)
from     at validateCaps (C:\appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\basedriver\capabilities.js:52:11)
from     at validateCaps (C:\appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\basedriver\capabilities.js:154:20)
from     at parseCaps (C:\appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\basedriver\capabilities.js:199:43)
from     at AndroidUiautomator2Driver.commands.createSession (C:\appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\basedriver\commands\session.js:36:14)
from     at AndroidUiautomator2Driver.createSession (C:\appium\resources\app\node_modules\appium\node_modules\appium-uiautomator2-driver\lib\driver.js:150:43)
from     at AppiumDriver.createSession (C:\appium\resources\app\node_modules\appium\lib\appium.js:301:43)
from     at process._tickCallback (internal/process/next_tick.js:68:7)
from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.142.0/lib/selenium/webdriver/remote/response.rb:72:in `assert_ok'
from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.142.0/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.142.0/lib/selenium/webdriver/remote/http/common.rb:88:in `new'
from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.142.0/lib/selenium/webdriver/remote/http/common.rb:88:in `create_response'
from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.142.0/lib/selenium/webdriver/remote/http/default.rb:114:in `request'
from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/appium_lib_core-3.1.1/lib/appium_lib_core/common/base/http_default.rb:81:in `call'
from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.142.0/lib/selenium/webdriver/remote/bridge.rb:167:in `execute'
from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/appium_lib_core-3.1.1/lib/appium_lib_core/common/base/bridge.rb:107:in `create_session'
from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/appium_lib_core-3.1.1/lib/appium_lib_core/common/base/bridge.rb:47:in `handshake'
from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/appium_lib_core-3.1.1/lib/appium_lib_core/common/base/driver.rb:34:in `initialize'
from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/appium_lib_core-3.1.1/lib/appium_lib_core/driver.rb:348:in `new'
from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/appium_lib_core-3.1.1/lib/appium_lib_core/driver.rb:348:in `start_driver'
from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/appium_lib-10.3.1/lib/appium_lib/driver.rb:548:in `start_driver'
from C:/qa/test.rb:29:in `<main>'
[Finished in 4.2s with exit code 1]
InvalidArgumentError:“autoGrantPermissions”必须是布尔类型:“autoGrantPermissions”必须是布尔类型(Selenium::WebDriver::Error::InvalidArgumentError)
来自validateCaps(C:\appium\resources\app\node\u modules\appium\node\u modules\appium base driver\lib\basedriver\capabilities.js:52:11)
来自validateCaps(C:\appium\resources\app\node\u modules\appium\node\u modules\appium base driver\lib\basedriver\capabilities.js:154:20)
来自parseCaps(C:\appium\resources\app\node\u modules\appium\node\u modules\appium base driver\lib\basedriver\capabilities.js:199:43)
来自AndroidUiautomator2Driver.commands.createSession(C:\appium\resources\app\node\u modules\appium\node\u modules\appium base driver\lib\basedriver\commands\session.js:36:14)
来自AndroidUiautomator2Driver.createSession(C:\appium\resources\app\node\u modules\appium\node\u modules\appium-uiautomator2-driver\lib\driver.js:150:43)
来自AppiumDriver.createSession(C:\appium\resources\app\node\u modules\appium\lib\appium.js:301:43)
来自于进程。点击回调(internal/process/next_tick.js:68:7)
来自C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.142.0/lib/selenium/webdriver/remote/response.rb:72:in'assert_ok'
来自C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.142.0/lib/selenium/webdriver/remote/response.rb:34:在“初始化”中
来自C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.142.0/lib/selenium/webdriver/remote/http/common.rb:88:“新建”
来自C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.142.0/lib/selenium/webdriver/remote/http/common.rb:88:in“create_response”
来自C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.142.0/lib/selenium/webdriver/remote/http/default.rb:114:“请求”中
来自C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/appium_lib_core-3.1.1/lib/appium_lib_core/common/base/http_default.rb:81:in'call'
来自C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/selenium-webdriver-3.142.0/lib/selenium/webdriver/remote/bridge.rb:167:“执行”中
来自C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/appium_lib_core-3.1.1/lib/appium_lib_core/common/base/bridge.rb:107:“创建会话”
来自C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/appium_lib_core-3.1.1/lib/appium_lib_core/common/base/bridge.rb:47:在“握手”中
来自C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/appium_lib_core-3.1.1/lib/appium_lib_core/common/base/driver.rb:34:在“初始化”中
来自C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/appium_lib_core-3.1.1/lib/appium_lib_core/driver.rb:348:in'new'
来自C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/appium_lib_core-3.1.1/lib/appium_lib_core/driver.rb:348:in'start_driver'
来自C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/appium_lib-10.3.1/lib/appium_lib/driver.rb:548:in'start_driver'
from C:/qa/test.rb:29:in`'
[在4.2s中完成,退出代码为1]
我真的不知道该怎么解决这个问题。感谢您的关注。

只需更改以下内容:

caps["autoGrantPermissions"] = "True"
致:

只要改变这个:

caps["autoGrantPermissions"] = "True"
致:


在双引号中使用True,这就是为什么它被视为字符串,而不是布尔值。您应该尝试将
caps[“autoGrantPermissions”]=“True”
更改为
caps[“autoGrantPermissions”]=True
您在双引号中使用的是True,这就是为什么它被视为字符串,而不是布尔值。您应该尝试将
caps[“autoGrantPermissions”]=“True”
更改为
caps[“autoGrantPermissions”]=True