В основном я пишу код appium для автоматизации одного нативного приложения.Теперь я хочу, чтобы вместо жесткого кодирования возможностей я хотел использовать внешний словарь, который предоставит данные для моего тестового примера относительно всех возможностей. Как я могу добиться того, чтобы
- вот моя основная программа
from appium import webdriver
from time import sleep
from pathlib2 import Path
import os
from appium.webdriver.common.touch_action import TouchAction
import unittest
class report(unittest.TestCase):
def setUp(self):
""""Launch the settings"""
capabilities = {}
capabilities["platformName"] = "Android"
capabilities["platformVersion"] = "8.0.0"
capabilities["deviceName"] = "Nil_Emulator"
capabilities["app"] = os.path.abspath(str(Path(__file__).parents[1]) + "/apk/medical-wisdom-1.0.8.apk")
self.driver = webdriver.Remote('http://localhost:4723/wd/hub', capabilities)
self.driver.implicitly_wait(30)
def tearDown(self):
self.driver.quit()
def test_report(self):
element_best_practice = self.driver.find_elements_by_xpath("//android.widget.RelativeLayout[@index=0]")
action = TouchAction(self.driver)
action.tap(element_best_practice[4]).perform()
sleep(3)
element_report_record = self.driver.find_element_by_xpath("//android.widget.ImageView[@index=1]")
action.tap(element_report_record).perform()
sleep(3)
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(report)
unittest.TextTestRunner(verbosity=2).run(suite)
Также код, который будет возвращать словарь:
from devices import DeviceSelection
import subprocess
class getOS(DeviceSelection):
def __init__(self):
super(getOS,self).__init__()
self.dict = {}
def getdata(self):
for device in self.list:
output = subprocess.check_output("adb -s " + device+" shell getprop ro.build.version.release ",shell=True)
self.dict[device]= output
return self.dict