如何在启动测试之前更改设备语言?

时间:2016-01-21 16:44:17

标签: android python automated-tests appium

我有以下屏幕方案:

  1. 我必须检查我的(物理)设备是否是英文的。如果没有,我必须切换到英语。

  2. 我必须打开我的应用程序并运行我的测试。

  3. 我写了两个函数:一个用于检查语言,另一个用于切换语言。然后,在setUp()我检查它是否是英文。这是我的代码:

    def setUp(self):
        desired_caps = {}
        desired_caps['platformName'] = 'Android'
        desired_caps['platformVersion'] = '4.4'
        desired_caps['deviceName'] = '0429058934'
        desired_caps['app'] = os.path.abspath(os.path.join(os.path.dirname(__file__),'C:/Users/andre.mendes/Desktop/workspace/powerpro/apps/powerpro.apk'))
        desired_caps['appPackage'] = 'com.psafe.powerpro'
        desired_caps['appActivity'] = '.MainActivity'
        desired_caps['autoLaunch'] = False
        self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
        self.driver.implicitly_wait(15) 
        getLang = "adb -s 0429058934 shell getprop persist.sys.language"        
        ret = subprocess.check_output(getLang)
        lang = ret.strip()
        if lang != 'en':
            os.system("adb -s 0429058934 shell am start -a android.settings.LOCALE_SETTINGS")
            eng = self.driver.find_element_by_name('English (United Kingdom)')
            action = TouchAction(self.driver)
            action.press(eng).perform()
            action.move_to(x=0, y=50).perform()
            self.driver.find_element_by_name('English (United States)').click()
        self.driver.launch_app()    
    

    但是如何在不启动我的应用程序的情况下执行此操作?我试过了:

    desired_caps['autoLaunch'] = False
    

    但我一直在接受:

      

    TypeError:无法读取属性' sendAction'为null

0 个答案:

没有答案