class open_installed_app(): 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_installedList(self): try: self.app_homePage() installed_buttons=self.common_fn.wait_for_elements(r'com.tclmarket:id/manage_image',By.ID) installed_buttons[2].click() time.sleep(2) try: title=self.common_fn.wait_for_element(r'com.tclmarket:id/home_title') if title.text==u'已安装': print u'get installed apps list\n' try: appName = self.common_fn.wait_for_elements(r'com.tclmarket:id/name',By.ID)[5].text click_apps=self.common_fn.wait_for_elements(r'com.tclmarket:id/fold_tag',By.ID) click_apps[5].click() open_button=self.common_fn.wait_for_element(r'com.tclmarket:id/bottom_action_left') open_button.click() print u'open app "%s" \n' % appName self.common_fn.driver.keyevent('4') return True except Exception as e: print u'not find apps\n' s = sys.exc_info() print 'Error %s happend on line %d' % (s[1],s[2].tb_lineno) else: pass except: pass except: print u'fail to go into installed apps page\n' s = sys.exc_info() print 'Error %s happend on line %d' % (s[1],s[2].tb_lineno) 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_installedList())
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 open_app_of_apklists(): 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_installedList(self): try: self.app_homePage() installed_buttons=self.common_fn.wait_for_elements(r'com.tclmarket:id/manage_image',By.ID) installed_buttons[3].click() time.sleep(2) try: title=self.common_fn.wait_for_element(r'com.tclmarket:id/home_title') if title.text==u'安装包扫描': print u'get apks list\n' try: appName = self.common_fn.wait_for_element(r'com.tclmarket:id/name').text click_apps=self.common_fn.wait_for_elements(r'com.tclmarket:id/icon',By.ID) click_apps[0].click() print u'open app "%s" \n' % appName self.common_fn.driver.keyevent('4') base = baseFunc() base.uninstallAPP(appName) return True except Exception as e: print e print u'not find apps\n' return False else: return False except: return False except: print u'fail to go into installed apps page\n' 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_installedList())
class start_set_from_apkslist(): 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'manage_button[4].text do not equal to 管理' except: print u'not find manage button\n' def apks_list(self): try: apks_list_buttons=self.common_fn.wait_for_elements(r'com.tclmarket:id/manage_image',By.ID) apks_list_buttons[3].click() time.sleep(2) print u'go into apks list page' except: print u'fail to go into apks list page' def start_set_page(self): try: self.app_homepage() self.apks_list() set_button=self.common_fn.wait_for_element(r'com.tclmarket:id/actionbar_settings') set_button.click() time.sleep(2) try: title=self.common_fn.wait_for_element(r'com.tclmarket:id/home_title') if title.text==u'设置': print u'get set page\n' return True else: return False except: print u'not get the title\n' return False except: print u'fail to find set button\n' 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.start_set_page())
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 HotpageVerify: def __init__(self): self.com = CommonFunctions() def loadHotapps(self): try: # frame = self.com.driver.find_element_by_id('com.tclmarket:id/remark_layout') # buttons = frame.find_elements_by_class_name('android.widget.RelativeLayout') # for button in buttons: # b = button.find_element_by_class_name('android.widget.TextView') # if b.text == u'飙升': # b.click() # time.sleep(5) # break # return True 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 hotpageVerify(self): time.sleep(2) hot_title = self.com.wait_for_element(value='com.tclmarket:id/home_title', element_text=u'最热') if hot_title: apps = self.com.driver.find_elements_by_id('com.tclmarket:id/name') for app in apps: if app.text != '': print 'hotpage display normally' return True else: print 'There is no app in hotpage.' return False def run_hotpageVerify(self): return self.com.run_test_case(lambda: self.com.launch_app(), lambda: self.loadHotapps(), lambda: self.hotpageVerify())
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 SearchpageVerify: def __init__(self): self.com = CommonFunctions() def searchpageVerify(self): button = self.com.wait_for_element('com.tclmarket:id/actionbar_search') button.click() time.sleep(5) try: frame = self.com.wait_for_element('com.tclmarket:id/keywordflow') keywords = frame.find_elements_by_class_name('android.widget.TextView') apps = self.com.wait_for_elements(value='com.tclmarket:id/name', by=By.ID) for k in keywords: if k.text != '': print u'48小时热门搜索 is ok' else: print u'48小时热门搜索 Load Fail' return False for a in apps: if a.text != '': print u'search chats is ok' else: print u'search chats Load Fail' return False backicon = self.com.wait_for_element('com.tclmarket:id/actionbar_up') backicon.click() banner = self.com.wait_for_element('com.tclmarket:id/banner1') if banner: print 'You have successfully from the search page' return True else: print 'wrong' return False except: print 'searchpage Load Fail' s = sys.exc_info() print 'Error "%s" happend on line %d' % (s[1], s[2].tb_lineno) return False def run_searchpageVerify(self): return self.com.run_test_case(lambda: self.com.launch_app(), lambda: self.searchpageVerify())
class installedAppPage(): def __init__(self): self.common_fn = CommonFunctions() def appHomePage(self): try: manageButtons=self.common_fn.wait_for_elements(r'com.tclmarket:id/text',By.ID) if manageButtons[4].text==u'管理': manageButtons[4].click() time.sleep(2) print u'go into manage page\n' return True else: print u'manageButton[4].text do not equal to 管理' return False except: print u'not find manage button\n' return False def appInstalledList(self): try: self.appHomePage() installedButtons=self.common_fn.wait_for_elements(r'com.tclmarket:id/manage_image',By.ID) installedButtons[2].click() time.sleep(2) try: title=self.common_fn.wait_for_element(r'com.tclmarket:id/home_title') if title.text==u'已安装': print u'get installed apps list\n' return True else: return False except: return False except: print u'fail to go into installed apps page\n' 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.appInstalledList())
class searchIndetail: 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(5) appname=self.com.wait_for_element('com.tclmarket:id/name') if appname.text==app.text: print 'you have entered appdetailpage' return True else: print 'you have entered wrong' return False except: print 'No app in the page' return False def opensearch(self): try: search=self.com.wait_for_element('com.tclmarket:id/actionbar_search') search.click() time.sleep(5) frame=self.com.wait_for_element('com.tclmarket:id/keywordflow') keywords=frame.find_elements_by_class_name('android.widget.TextView') apps=self.com.driver.find_elements_by_id('com.tclmarket:id/name') for k in keywords: if k.text!='': print u'48小时热门搜索 is ok' break else: print u'48小时热门搜索 Load Fail' return False for a in apps: if a.text !='': print u'search chats is ok' break else: print u'search chats Load Fail' return False backicon=self.com.wait_for_element('com.tclmarket:id/actionbar_up') backicon.click() appname=self.com.wait_for_element('com.tclmarket:id/name') if appname.text==app.text: print 'You successfully returns page for details' return True else: print 'you have entered wrong' return False except: print 'searchpage Load Fail' return False def run_searchIndetail(self): return self.com.run_test_case(lambda: self.com.launch_app(), lambda: self.openDetailpage(), lambda: self.opensearch())
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 uninstalled_app: 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_installedList(self): try: self.app_homePage() installed_buttons = self.common_fn.wait_for_elements(r"com.tclmarket:id/manage_image", By.ID) installed_buttons[2].click() time.sleep(2) try: title = self.common_fn.wait_for_element(r"com.tclmarket:id/home_title") if title.text == u"已安装": print u"get installed apps list\n" try: uninstall_name = self.common_fn.wait_for_element(r"com.tclmarket:id/name").text uninstall_button = self.common_fn.wait_for_element(r"com.tclmarket:id/actionOne") uninstall_button.click() try: uninstall_title = self.common_fn.wait_for_element(r"android:id/alertTitle") if uninstall_title.text == uninstall_name: print u"uninstall apps\n" return True else: print u"can not uninstall apps\n" return False except: s = sys.exc_info() print "Error %s happend on line %d" % (s[1], s[2].tb_lineno) return False except: s = sys.exc_info() print "Error %s happend on line %d" % (s[1], s[2].tb_lineno) print u"not find uninstall buttons\n" return False else: return False except: s = sys.exc_info() print "Error %s happend on line %d" % (s[1], s[2].tb_lineno) return False except: s = sys.exc_info() print "Error %s happend on line %d" % (s[1], s[2].tb_lineno) print u"fail to go into installed apps page\n" 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_installedList() )
class apk_scanning_page(): ''' 版本 应用商店4.0.1 编号 AppStore2-935 标题 安装包扫描界面 ''' def __init__(self): self.common_fn = CommonFunctions() def app_homepage(self): try: downloadApps=self.common_fn.wait_for_elements(r'com.tclmarket:id/item_container',By.ID) isClick = False for app in downloadApps: downloadBtn = app.find_element(By.ID,r'com.tclmarket:id/action_text') if downloadBtn.text == u'下载': downloadBtn.click() appName = app.find_element(By.ID,r'com.tclmarket:id/name').text isClick = True break if not isClick: raise Exception('do not have download app at installedAppOpen') print u'start to download an app\n' time.sleep(50) except: print u'fail to download the first app\n ' try: for i in range(4): self.common_fn.element_clk(r'com.android.packageinstaller:id/ok_button') #print u'click the next button %d\n' % (i+1) time.sleep(30) #print u'finish clicking ok\n' except Exception as e: print e print u'something wrong with ok button\n' return False try: self.common_fn.element_clk(r"com.android.packageinstaller:id/done_button") time.sleep(2) #print u'install the first app\n' except: print u'fail to install the first app\n' return False try: download_apps=self.common_fn.wait_for_elements(r'com.tclmarket:id/action',By.ID) download_apps[1].click() print u'start to download the second app\n' time.sleep(55) except: print u'fail to download the second app\n ' return False try: self.common_fn.wait_for_element(r'com.android.packageinstaller:id/cancel_button',time_out=90).click() time.sleep(2) print u'refuse to install downloaded apk\n' except: print u'fail to refuse install\n' return False finally: self.common_fn.driver.remove_app('com.tencent.qqlive') 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 管理' return False try: 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[3].text==u'安装包扫描' : action_buttons[3].click() print u'get apks scanning page\n' else: print u'not get apks scanning page\n' return False try: title=self.common_fn.wait_for_elements(r'com.tclmarket:id/header_text',By.ID) base = baseFunc() if title and len(title) == 1 and u'已安装' in title[0].text: base.uninstallAPP(appName) return True elif title and len(title) == 2 and u'已安装' in title[0].text and u'未安装' in title[1].text: #print u'installed apk is right\n' base.uninstallAPP(appName) return True else: print u'没有发现已安装或未安装列表' return False except: print u'not find apks\n' s = sys.exc_info() print 'Error "%s" happend on line %d' % (s[1],s[2].tb_lineno) return False except: print u'not find apks scanning button\n' s = sys.exc_info() print 'Error "%s" happend on line %d' % (s[1],s[2].tb_lineno) return False except: print u'not find manage button\n' s = sys.exc_info() print 'Error "%s" happend on line %d' % (s[1],s[2].tb_lineno) 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_homepage())
class startSearchPage(): def __init__(self): self.common_fn = CommonFunctions() def appHomePage(self): try: downloadApps=self.common_fn.wait_for_elements(r'com.tclmarket:id/item_container',By.ID) isClick = False for app in downloadApps: downloadBtn = app.find_element(By.ID,r'com.tclmarket:id/action_text') if downloadBtn.text == u'下载': downloadBtn.click() isClick = True break if not isClick: raise Exception('do not have download app at installedAppOpen') print u'start to download an app\n' time.sleep(50) except: print u'fail to download the first app\n ' try: for i in range(4): self.common_fn.element_clk(r'com.android.packageinstaller:id/ok_button',timeout=50) print u'click the next button %d\n' % (i+1) time.sleep(30) print u'finish clicking ok\n' except: print u'something wrong with ok button\n' try: doneButton=self.common_fn.element_clk(r"com.android.packageinstaller:id/done_button",timeout=30) time.sleep(2) print u'install the first app\n' except: print u'fail to install the first app\n' try: manageButtons=self.common_fn.wait_for_elements(r'com.tclmarket:id/text',By.ID) if manageButtons[4].text==u'管理': manageButtons[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' s = sys.exc_info() print 'Error %s happend on line %d' % (s[1],s[2].tb_lineno) def appDownloadTask(self): try: downloadTaskButtons=self.common_fn.wait_for_elements(r'com.tclmarket:id/manage_image',By.ID) downloadTaskButtons[0].click() time.sleep(2) print u'go into download task page' except: print u'fail to go into download task page' def startSearchPage(self): try: self.appHomePage() self.appDownloadTask() appName = self.common_fn.wait_for_element(r'com.tclmarket:id/name').text searchButton=self.common_fn.wait_for_element(r'com.tclmarket:id/actionbar_search') searchButton.click() time.sleep(2) try: findAppButton=self.common_fn.wait_for_element(r'com.tclmarket:id/search_editor') if findAppButton.text==u'搜您喜欢的应用': print u'get search page\n' try: gobackButton=self.common_fn.wait_for_element(r'com.tclmarket:id/actionbar_up') gobackButton.click() time.sleep(2) try: title=self.common_fn.wait_for_element(r'com.tclmarket:id/home_title') if title: print u'goback to download task page\n' base = baseFunc() base.uninstallAPP(appName) return True else: print u'fail to goback to download task page\n' return False except: s = sys.exc_info() print 'Error %s happend on line %d' % (s[1],s[2].tb_lineno) return False except: print u'not find gobackButton\n' return False else: print u'fail to get search page\n' return False except: print u'not get the findAppButton' return False except: print u'fail to find search button\n' return False finally: self.common_fn.driver.remove_app('com.tencent.qqlive') 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.startSearchPage())
class favoritesApp: 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(5) return True else: print 'loading recommend app failure' return False except: print 'No app in the page' return False # 登录并收藏应用 def favoriteApp(self): try: shareicon = self.com.wait_for_element('com.tclmarket:id/left_btn_image') appname = self.com.wait_for_element('com.tclmarket:id/name') if appname.text == app.text: print 'you have entered appdetailpage' else: print 'you have entered wrong' return False shareicon.click() time.sleep(5) input_texts = self.com.driver.find_elements_by_class_name('android.widget.EditText') input_texts[0].send_keys(u'*****@*****.**') input_texts[1].send_keys(u'wll82441985') button = self.com.driver.find_element_by_class_name('android.widget.Button') button.click() time.sleep(8) shareicon = self.com.wait_for_element('com.tclmarket:id/left_btn_image') shareicon.click() time.sleep(5) back_button = self.com.wait_for_element('com.tclmarket:id/actionbar_up') if back_button: back_button.click() return True else: return False except: print 'favoriteApp error' return False # 验证收藏是否成功 def checkFavoriteapp(self): try: tab = self.com.wait_for_element('com.tclmarket:id/tab_indicator') buttons = tab.find_elements_by_class_name('android.widget.TextView') for b in buttons: if u'我的' in b.text: b.click() time.sleep(3) break F_button = self.com.wait_for_element('com.tclmarket:id/favorite') F_button.click() time.sleep(5) F_apps = self.com.driver.find_elements_by_id('com.tclmarket:id/name') if F_apps[0].text == app.text: print 'Successful collection application' return True else: print 'Collect application failure' return False except: print 'checkFavoriteapp error' return False def run_favoritesApp(self): return self.com.run_test_case(lambda: self.com.launch_app(), lambda: self.openDetailpage(), lambda: self.favoriteApp(), lambda: self.checkFavoriteapp())
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 app_manage_page(): ''' 版本 应用商店4.0.1 编号 AppStore2-909 标题 管理界面验证 ''' def __init__(self): self.common_fn = CommonFunctions() def manage_page(self): try: manage_buttons=self.common_fn.wait_for_elements(r'com.tclmarket:id/text',By.ID) manage_button_num=self.common_fn.wait_for_element(r'com.tclmarket:id/manager_update_app_tips') manage_num=manage_button_num.text print manage_num if manage_buttons[4].text==u'管理': manage_buttons[4].click() time.sleep(2) print u'go into manage page\n' else: print u'manage_button[4].text do not equal to 管理' try: action_texts=self.common_fn.wait_for_elements(r'com.tclmarket:id/manage_text',By.ID) for i in range(5): print action_texts[i].text print u'manage page is right\n' try: action_buttons=self.common_fn.wait_for_elements(r'com.tclmarket:id/manage_image',By.ID) action_buttons[1].click() time.sleep(2) try: updated_titles=self.common_fn.wait_for_elements('com.tclmarket:id/header_text',By.ID) if updated_titles: print updated_titles[0].text print manage_num manage_num_str=u'可更新('+manage_num+u')' if updated_titles[0].text==manage_num_str: print u'the number of apps to be updated is right\n' return True else: print u'no app to be updated\n' return True except Exception as e: print u'error 3:'+e print u'can not get number of updated_title \n' return False except Exception as e: print u'error 2:'+e print u'action_buttons are wrong\n' return False except Exception as e: print u'error 1:'+e print u'fail to go into download task page' return False except Exception as e: print e print u'not find manage button\n' s = sys.exc_info() print 'Error %s on line %d' % (s[1],s[2].tb_lineno) return False finally: self.common_fn.driver.remove_app('com.tencent.qqlive') 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.manage_page())
class startSetPage(): def __init__(self): self.common_fn = CommonFunctions() def appHomePage(self): try: downloadApps=self.common_fn.wait_for_elements(r'com.tclmarket:id/action',By.ID) downloadApps[0].click() print u'start to download an app\n' time.sleep(30) except: print u'fail to download the first app\n ' try: for i in range(4): OKButton=self.common_fn.wait_for_element(r'com.android.packageinstaller:id/ok_button') OKButton.click() print u'click the next button %d\n' % (i+1) time.sleep(30) print u'finish clicking ok\n' except: print u'something wrong with ok button\n' try: doneButton=self.common_fn.wait_for_element(r"com.android.packageinstaller:id/done_button") doneButton.click() time.sleep(2) print u'install the first app\n' except: print u'fail to install the first app\n' try: manageButtons=self.common_fn.wait_for_elements(r'com.tclmarket:id/text',By.ID) if manageButtons[4].text==u'管理': manageButtons[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 appDownloadTask(self): try: downloadTaskButtons=self.common_fn.wait_for_elements(r'com.tclmarket:id/manage_image',By.ID) downloadTaskButtons[0].click() time.sleep(2) print u'go into download task page' except: print u'fail to go into download task page' def startSetPage(self): try: #self.appHomePage() self.appDownloadTask() setButton=self.common_fn.wait_for_element(r'com.tclmarket:id/actionbar_settings') setButton.click() time.sleep(2) try: title=self.common_fn.wait_for_element(r'com.tclmarket:id/home_title') if title.text==u'设置': print u'get set page\n' return True else: return False except: print u'not get the title\n' return False except: print u'fail to find set button\n' 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.startSetPage())
class DownloadAdApp: def __init__(self): self.common_fn = CommonFunctions() def appdownload(self): try: adButtons = self.common_fn.wait_for_elements(r"android.widget.ImageView") except: time.sleep(3) adButtons = self.common_fn.wait_for_elements(r"android.widget.ImageView") adButtons[1].click() time.sleep(5) print u"get adButton\n" try: download_keys = self.common_fn.wait_for_elements(r"com.tclmarket:id/action_text", By.ID) download_values = self.common_fn.wait_for_elements(r"com.tclmarket:id/action", By.ID) if download_keys: for i in range(len(download_keys)): if download_keys[i].text == u"下载": download_values[i].click() print u"start to download the app\n" break elif download_keys[i].text == u"继续": download_values[i].click() print u"continue to download the app\n" elif download_keys[i].text == u"安装": download_values[i].click() print u"start to setup the app\n" elif download_keys[i].text == u"更新": download_values[i].click() print u"start to update the app\n" elif download_keys[i].text == u"打开": print u"the app has downloaded" else: download_values[i].click() print u"stop download the app" else: print u"not find any download buttons\n" return False except: print u"fail to download single app\n" return False try: button = self.common_fn.wait_for_element(r"com.tclmarket:id/download_all_button") if button.text == u"下载全部": button.click() time.sleep(5) print u"all ad apps are downloading\n" self.cleanAPP() return True else: print u'not find "download all"button\n' return False except: print u"download fail" return False finally: self.common_fn.driver.remove_app("com.tencent.qqlive") def cleanAPP(self): """清除全部下载任务""" try: config_file = os.path.join(self.common_fn.program_path, "config/conf.ini") config = ConfigParser.ConfigParser() config.readfp(open(config_file)) packageName = config.get("Device", "app-package") os.system("adb shell pm clear %s" % packageName) return True except: s = sys.exc_info() print 'Error "%s" happend on line %d' % (s[1], s[2].tb_lineno) 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.appdownload() )
class start_search_from_apks(): 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 apks_list(self): try: download_task_buttons=self.common_fn.wait_for_elements(r'com.tclmarket:id/manage_image',By.ID) download_task_buttons[3].click() time.sleep(2) print u'go into apks list page\n' except: print u'fail to go into apks list page\n' def start_search_page(self): try: self.app_homepage() self.apks_list() search_button=self.common_fn.wait_for_element(r'com.tclmarket:id/actionbar_search') search_button.click() time.sleep(2) try: findApp_button=self.common_fn.wait_for_element(r'com.tclmarket:id/search_editor') if findApp_button.text==u'搜您喜欢的应用': print u'get search page\n' try: goback_button=self.common_fn.wait_for_element(r'com.tclmarket:id/actionbar_up') goback_button.click() time.sleep(2) try: title=self.common_fn.wait_for_element(r'com.tclmarket:id/home_title') if title: print u'goback to apks list page\n' return True else: print u'fail to goback to apks list page\n' return False except: s = sys.exc_info() print 'Error %s happend on line %d' % (s[1],s[2].tb_lineno) return False except: print u'not find gobackButton\n' s = sys.exc_info() print 'Error %s happend on line %d' % (s[1],s[2].tb_lineno) return False else: print u'fail to get search page\n' s = sys.exc_info() print 'Error %s happend on line %d' % (s[1],s[2].tb_lineno) return False except: print u'not get the findAppButton' s = sys.exc_info() print 'Error %s happend on line %d' % (s[1],s[2].tb_lineno) return False except: print u'fail to find search button\n' s = sys.exc_info() print 'Error %s happend on line %d' % (s[1],s[2].tb_lineno) 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.start_search_page())
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 appManage(): def __init__(self): self.common_fn = CommonFunctions() def appHomePage(self): try: manageButtons=self.common_fn.wait_for_elements(r'com.tclmarket:id/text',By.ID) if manageButtons[4].text==u'管理': manageButtons[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 appDownloadTask(self): try: self.appHomePage() downloadTaskButtons=self.common_fn.wait_for_elements(r'com.tclmarket:id/manage_image',By.ID) # taskNums=self.common_fn.wait_for_elements(r'com.tclmarket:id/num') # print 'download tasks:'+taskNums[0].text downloadTaskButtons[0].click() time.sleep(2) print u'go into download task page' try: gobackButton=self.common_fn.wait_for_element(r'com.tclmarket:id/go_to_home') if gobackButton: gobackButton.click() print u'find goback button\n' try: downloadApps=self.common_fn.wait_for_elements(r'com.tclmarket:id/action',By.ID) downloadApps[0].click() downloadApps[1].click() print u'start to download an app\n' downloadApps[0].click() downloadApps[1].click() print u'stop downloading\n' self.appHomePage() taskNums=self.common_fn.wait_for_elements(r'com.tclmarket:id/num',By.ID) taskNum=taskNums[0].text print 'download tasks:'+taskNum downloadTaskButtons[0].click() try: listTasks=self.common_fn.wait_for_elements(r'com.tclmarket:id/actionOne',By.ID) print listTasks print 'task number is'+str(len(listTasks)) if taskNum==str(len(listTasks)): print u'task number is right\n' return True else: print u'task number is not right\n' return False except Exception as e: print u'not find task from list\n' print e return False except: print u'can not download an app\n' s = sys.exc_info() print 'Error "%s" happend on line %d' % (s[1],s[2].tb_lineno) return False else: print u'not find goback button\n' s = sys.exc_info() print 'Error "%s" happend on line %d' % (s[1],s[2].tb_lineno) return False except: print u'not find gobackButton\n' s = sys.exc_info() print 'Error "%s" happend on line %d' % (s[1],s[2].tb_lineno) return False except: print u'fail to go into download task page' s = sys.exc_info() print 'Error "%s" happend on line %d' % (s[1],s[2].tb_lineno) return False finally: self.common_fn.driver.remove_app('com.tencent.qqlive') 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.appDownloadTask())