class loadApp: def __init__(self): self.com = CommonFunctions() def loadApp(self): newapp_list = '' while True: try: app_list = [] buttons = self.com.driver.find_elements_by_id('com.tclmarket:id/name') for b in buttons: app = b.text app_list.append(app) if app_list[-1] != newapp_list: newapp_list = app_list[-1] print 'loading app successfully' self.com.swipe_screen() time.sleep(10) else: print 'you load all app on the page' return True except Exception, e: print 'you load all app on the page error' print '%s:%s' % (e.message, e) return False
class baseFunc: """基本功能类""" #---------------------------------------------------------------------- def __init__(self): """Constructor""" self.common_fn = CommonFunctions() #---------------------------------------------------------------------- def uninstallAPP(self,name): """卸载指定应用""" isHome = False while not isHome: self.common_fn.driver.keyevent('4') time.sleep(2) if self.common_fn.driver.current_activity == '.activity.MarketHomeActivity': isHome = True print 'uninstall app' time.sleep(5) tabs = self.common_fn.com_find_element(r'android:id/tabs') tabs.find_element(By.NAME,u'管理').click() action_buttons=self.common_fn.wait_for_elements(r'com.tclmarket:id/manage_image',By.ID) action_texts=self.common_fn.wait_for_elements(r'com.tclmarket:id/manage_text',By.ID) if action_texts[2].text==u'已安装' : action_buttons[2].click() time.sleep(2) print u'get installed apks page\n' self.findByName(name) else: print u'not get installed apks page\n' return False #print self.common_fn.com_find_element(name,By.NAME) #---------------------------------------------------------------------- def findByName(self,name): """查找指定应用列表""" try: isLast = False lastAPP = '' while not isLast: apps = self.common_fn.wait_for_elements(r'android.widget.RelativeLayout',By.CLASS_NAME) for i in range(len(apps)): #print '------------',apps[i].find_element(By.ID,r'com.tclmarket:id/name').text try: if apps[i].find_element(By.ID,r'com.tclmarket:id/name').text == name: apps[i].find_element(By.ID,r'com.tclmarket:id/actionOne').click() self.common_fn.element_clk('OK',By.NAME) return True except: s = sys.exc_info() print 'Error "%s" happend on line %d' % (s[1],s[2].tb_lineno) newLastAPP = apps[-1].find_element(By.ID,r'com.tclmarket:id/name').text if lastAPP == newLastAPP: return False lastAPP = newLastAPP self.common_fn.swipe_screen(percent=0.7,duration=2000) except: s = sys.exc_info() print 'Error "%s" happend on line %d' % (s[1],s[2].tb_lineno)
class onekey_report: def __init__(self): self.com = CommonFunctions() # 打开应用详情 def openDetailpage(self): global app try: apps = self.com.driver.find_elements_by_id("com.tclmarket:id/name") for app in apps: if app.text != "": app.click() time.sleep(8) appname = self.com.wait_for_element("com.tclmarket:id/name") if appname.text == app.text: print "you have entered appdetailpage" self.com.swipe_screen(percent=0.7) time.sleep(3) return True else: print "you have entered wrong" return False except: print "No app in the page" return False def onekeyVerify(self): try: report = self.com.wait_for_element("com.tclmarket:id/one_key_submit") report.click() report_message = self.com.wait_for_element("com.tclmarket:id/report_message") report_items = self.com.driver.find_elements_by_id("com.tclmarket:id/linerlayout_two") for item in report_items: item.click() submit = self.com.wait_for_element("com.tclmarket:id/submit") report_message.send_keys(u"测试一件举报") submit.click() if report: print "you back the detail page" return True else: print "back failed" return False except: s = sys.exc_info() print 'Error "%s" happend on line %d' % (s[1], s[2].tb_lineno) return False def run_onekey_report(self): return self.com.run_test_case( lambda: self.com.launch_app(), lambda: self.openDetailpage(), lambda: self.onekeyVerify() )
class commentpageVerify: def __init__(self): self.com = CommonFunctions() # 打开应用详情 def openDetailpage(self): try: apps = self.com.driver.find_elements_by_id('com.tclmarket:id/name') for app in apps: if app.text != '': app.click() time.sleep(5) appname = self.com.wait_for_element('com.tclmarket:id/name') if appname.text == app.text: print 'you have entered appdetailpage' self.com.swipe_screen(percent=0.7) time.sleep(3) return True else: print 'you have entered wrong' return False except: print 'No app in the page' return False def commentpafeVerify(self): try: comment = self.com.wait_for_element('com.tclmarket:id/remark_tv') comment.click() time.sleep(5) writeComment = self.com.wait_for_element('com.tclmarket:id/write_commment') grade = self.com.wait_for_element('com.tclmarket:id/avgscore_lyout') if writeComment and grade: print 'You enter commentpage successfully' return True else: print 'Enter the commentpage failure' return False except: print 'commentpafe verify failure' return False def run_commentpafeVerify(self): return self.com.run_test_case(lambda: self.com.launch_app(), lambda: self.openDetailpage(), lambda: self.commentpafeVerify())
class loadHotapps: def __init__(self): self.com = CommonFunctions() def loadHotapps(self): try: hot_button = self.com.wait_for_element(value='com.tclmarket:id/remark_text1', element_text=u'最热') if hot_button: hot_button.click() return True return False except: print 'No hot labels' s = sys.exc_info() print 'Error "%s" happend on line %d' % (s[1], s[2].tb_lineno) return False def loadApps(self): newapp_list = '' while True: try: app_list = [] time.sleep(2) buttons = self.com.driver.find_elements_by_id('com.tclmarket:id/name') for b in buttons: app = b.text app_list.append(app) if app_list[-1] != newapp_list: newapp_list = app_list[-1] print 'loading app successfully' self.com.swipe_screen() time.sleep(10) else: print 'you load all app on the page' return True except: print 'loadApps error' s = sys.exc_info() print 'Error "%s" happend on line %d' % (s[1], s[2].tb_lineno) return False def run_loadHotapps(self): return self.com.run_test_case(lambda: self.com.launch_app(), lambda: self.loadHotapps(), lambda: self.loadApps())
class versionVerify: def __init__(self): self.com = CommonFunctions() # 获取应用列表中应用的版本号 def getVersion(self): global version_NO try: versions = self.com.driver.find_elements_by_id('com.tclmarket:id/version') for v in versions: version = v.text version_no = version.split('|')[0] version_NO = version_no[1:-1] print version_NO return True except: print 'getVersion Failed' return False # 打开应用详情 def openDetailpage(self): global app try: apps = self.com.driver.find_elements_by_id('com.tclmarket:id/name') for app in apps: if app.text != '': app.click() time.sleep(8) appname = self.com.wait_for_element('com.tclmarket:id/name') if appname.text == app.text: print 'you have entered appdetailpage' self.com.swipe_screen(percent=0.7) time.sleep(3) return True else: print 'you have entered wrong' return False except: print 'No app in the page' return False def checkVersion(self): try: fr = self.com.wait_for_element('com.tclmarket:id/version_info_content') v = fr.find_element_by_id('com.tclmarket:id/version_name') UT = fr.find_element_by_id('com.tclmarket:id/update_time') DL = fr.find_element_by_id('com.tclmarket:id/download_times') ok = fr.find_element_by_id('com.tclmarket:id/one_key_submit') version = v.text update = UT.text download = DL.text one_key = ok.text versioncode = version.split(u':')[-1] print versioncode if versioncode == version_NO and update and download and one_key: print 'Version information in detail page is OK' return True else: print 'Version information in detail page is Failed' return False except: s = sys.exc_info() print 'Error "%s" happend on line %d' % (s[1], s[2].tb_lineno) return False def run_versionVerify(self): return self.com.run_test_case(lambda: self.com.launch_app(), lambda: self.getVersion(), lambda: self.openDetailpage(), lambda: self.checkVersion())
class share_app(): ''' 版本 应用商店4.0.1 编号 AppStore2-931 标题 分享应用程序 ''' def __init__(self): self.common_fn = CommonFunctions() def app_homepage(self): try: manage_buttons=self.common_fn.wait_for_elements(r'com.tclmarket:id/text',By.ID) if manage_buttons[4].text==u'管理': manage_buttons[4].click() time.sleep(2) print u'go into manage page\n' else: print u'manageButton[4].text do not equal to 管理' except: print u'not find manage button\n' def app_update_task(self): try: self.app_homepage() download_task_buttons=self.common_fn.wait_for_elements(r'com.tclmarket:id/manage_image',By.ID) download_task_buttons[1].click() time.sleep(2) print u'go into update task page' try: app_list_buttons=self.common_fn.wait_for_elements(r'com.tclmarket:id/fold_tag',By.ID) if app_list_buttons: app_list_buttons[0].click() try: ignore_button=self.common_fn.wait_for_element(r'com.tclmarket:id/bottom_action_middle') ignore_button.click() time.sleep(2) try: alert_title=self.common_fn.wait_for_element(r'android:id/alertTitle') ok_button=self.common_fn.wait_for_element(r'android:id/button1') if alert_title.text==u'忽略更新': ok_button.click() print u'ignore app update\n' else: print u'the alert is not about ignore\n' except: print u'not get alert page\n' s = sys.exc_info() print 'Error %s happend on line %d' % (s[1],s[2].tb_lineno) except: print u'not get ignore page\n' else: print u'not find any apps to be updated\n' if app_list_buttons: app_list_buttons[0].click() try: share_button=self.common_fn.wait_for_element(r'com.tclmarket:id/bottom_action_left') share_button.click() time.sleep(2) try: alert_title=self.common_fn.wait_for_element(r'android:id/title') if alert_title.text==u'分享': print u'get share list\n' try: shareBtn=self.common_fn.wait_for_elements(r'android:id/text1',By.ID) for bluetooth_share in shareBtn: if bluetooth_share.text == 'Bluetooth': bluetooth_share.click() time.sleep(2) break try: open_alert=self.common_fn.wait_for_element(r'com.android.bluetooth:id/content') if open_alert: print u'get open bluetooth alert\n' turn_on_button=self.common_fn.wait_for_element(r'android:id/button1') turn_on_button.click() time.sleep(2) except: print u'not get open bluetooth alert\n' s = sys.exc_info() print 'Error %s happend on line %d' % (s[1],s[2].tb_lineno) try: if self.common_fn.driver.current_activity == u'.bluetooth.DevicePickerActivity': print u'the app can be shared by bluetooth\n' else: pass except: print u'not get the title\n' s = sys.exc_info() print 'Error %s happend on line %d' % (s[1],s[2].tb_lineno) except: print u'not get bluetooth share button\n' s = sys.exc_info() print 'Error %s happend on line %d' % (s[1],s[2].tb_lineno) else: print u'the alert is not about share\n' except: print u'not get alert page\n' s = sys.exc_info() print 'Error %s happend on line %d' % (s[1],s[2].tb_lineno) except: print u'not get share button\n' try: self.common_fn.driver.back() time.sleep(5) self.common_fn.swipe_screen() try: action_buttons=self.common_fn.wait_for_elements(r'com.tclmarket:id/fold_tag_btn',By.ID) text_buttons=self.common_fn.wait_for_elements(r'com.tclmarket:id/actionOne_text',By.ID) if text_buttons[-1].text==u'取消忽略': print u'get ignored app\n' action_buttons[-1].click() try: ignore_share=self.common_fn.wait_for_element(r'com.tclmarket:id/bottom_action_left') ignore_share.click() time.sleep(2) try: alert_title=self.common_fn.wait_for_element(r'android:id/title') if alert_title.text==u'分享': print u'get share list\n' return True else: return False except: print u'not get bluetooth share button\n' s = sys.exc_info() print 'Error %s happend on line %d' % (s[1],s[2].tb_lineno) except Exception as e: print e print u'not find share button\n' elif text_buttons[-1].text ==u'更新': print u'no ignored app\n' return True else: return False except: print u'no app\n' s = sys.exc_info() print 'Error %s happened on lineno %d' % (s[1],s[2].tb_lineno) return False except: print u'fail to swipe\n' s = sys.exc_info() print 'Error %s happened on lineno %d' % (s[1],s[2].tb_lineno) return False else: print u'only one app to be updated\n' return False except: print u'not get ignore button' except: print u'fail to go into update task page' return False def run(self): start = startOperate() return self.common_fn.run_test_case(lambda: self.common_fn.launch_app('4.0.1'), lambda: start.baseOperate(), lambda: self.app_update_task())
class writecoment: def __init__(self): self.com = CommonFunctions() # 打开应用详情ssss def openDetailpage(self): try: apps = self.com.driver.find_elements_by_id('com.tclmarket:id/name') for app in apps: if app.text != '': app.click() time.sleep(5) appname = self.com.wait_for_element('com.tclmarket:id/name') if appname.text == app.text: print 'you have entered appdetailpage' self.com.swipe_screen(percent=0.7) time.sleep(3) return True else: print 'you have entered wrong' return False except: print 'No app in the page' return False def writecomment(self): try: comment = self.com.wait_for_element('com.tclmarket:id/remark_tv') comment.click() time.sleep(2) writeComment = self.com.wait_for_element('com.tclmarket:id/write_commment') writeComment.click() commentbox = self.com.wait_for_element('com.tclmarket:id/comment_content') submit = self.com.wait_for_element('com.tclmarket:id/submit_comment') submit.click() if commentbox: print 'network is well' else: print 'pelase check your network' return False commentbox.send_keys(u'等等') submit.click() time.sleep(2) if writeComment: print 'You have successfully submit comments' return True return False except: print 'writecomment error ' return False def run_writecoment(self): return self.com.run_test_case(lambda: self.com.launch_app(), lambda: self.openDetailpage(), lambda: self.writecomment())
class hoursSearch48: def __init__(self): self.com = CommonFunctions() def clickKeyword(self): global keyword button = self.com.wait_for_element('com.tclmarket:id/actionbar_search') button.click() time.sleep(5) try: button = self.com.wait_for_element('com.tclmarket:id/loading_error_info') if button.text == u'加载失败,请检查您的网络连接': return False return True except: buttons = self.com.wait_for_elements(value='android.widget.TextView') for number in range(len(buttons)): if buttons[number].text == u'48小时热门搜索': keyword = buttons[number + 1].text print 'keyword is %s' % keyword time.sleep(5) buttons[number + 1].click() time.sleep(5) return True def searchresultValidation(self): buttons = self.com.driver.find_elements_by_id('com.tclmarket:id/name') for i in buttons: app = i.text if keyword in app: print 'app is %s' % app return True else: print 'error happened on searchresultValidation' return False def loadPage(self): newapp_list = '' while True: self.searchresultValidation() try: app_list = [] buttons = self.com.driver.find_elements_by_id('com.tclmarket:id/name') for b in buttons: app = b.text app_list.append(app) if app_list[-1] != newapp_list: newapp_list = app_list[-1] print 'loading app successfully' self.com.swipe_screen() time.sleep(10) else: print 'you load all app on the page' return True except Exception, e: print 'loadpage error' print '%s:%s' % (Exception.message, e) return False