Как предоставить системные разрешения Android с помощью Python
Я новичок в Python и пытаюсь сделать тест автоматизации для приложения, использующего Appium 1.3.1 и Python 3.6 на симуляторе Android 7.1.1. На данный момент я застрял во всплывающем окне системных разрешений и не знаю, как выбрать элемент "ALLOW" в Python (не то же самое, что выбрать обычную кнопку внутри приложения). Приложение не запускается до тех пор, пока не будет предоставлен доступ к файлам, но я не уверен точно, где установить это в коде и как записать его в Python. У кого-то есть пример кода или какая-то идея, как это сделать? Это то, что я сделал до сих пор:
import os
import unittest
from appium import webdriver
from time import sleep
class meTest(unittest.TestCase):
def setUp(self):
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '7.1.1'
desired_caps['deviceName'] = 'Android Emulator'
# Returns abs path relative to this file and not cwd
desired_caps['app'] = ‘example.apk'
self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
def test_OpenDocuments(self):
sleep(10)
documentSearchButton = self.driver.find_element_by_id(
‘example.example').click()
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(meTest)
unittest.TextTestRunner(verbosity=2).run(suite)
Благодарю.
2 ответа
Чтобы предоставить разрешение (в моем случае для кнопки "РАЗРЕШИТЬ" в диалоговом окне разрешений Android) необходимо получить доступ к требуемым_капам в веб-драйвере Appium. Он автоматически предоставил все разрешения для этого приложения.
desired_caps['autoGrantPermissions'] = 'true'
Насколько я знаю, вы обычно можете устанавливать разрешения с помощью os.chown(). В вашем случае (Python 3.6) может работать следующее:
os.chmod("path/to/your/file", 0o666)
Конечно, вам нужно изменить права доступа в соответствии с вашими требованиями, "0o666" - это просто пример возврата, например:
-rw-rw-rw- 1 ag ag 0 Mar 25 05:55 your_file