autoGrantPermissions как булевский тип, как? - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь разрешить моему тесту автоматически предоставлять разрешения с заглавными буквами, но всегда, когда я пытаюсь это сделать, я получаю 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]

Я действительно не знаю, что делать, чтобы решитьэтот.Спасибо за ваше внимание.

Ответы [ 2 ]

2 голосов
/ 15 мая 2019

Просто измените это:

caps["autoGrantPermissions"] = "True"

на:

caps["autoGrantPermissions"] = true
0 голосов
/ 15 мая 2019

Вы используете True в двойных кавычках, поэтому он рассматривается как строка, а не как логическое значение.Вы должны попробовать изменить caps["autoGrantPermissions"] = "True" на caps["autoGrantPermissions"] = true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...