class scannerPage: def __init__(self, driver): self.driver = driver self.base_page = BasePage(self.driver) # self.driver = self.base_page.driver self.get_by_local = GetByLocal(self.driver) def get_bleAlert_ok(self): """提示打开蓝牙弹出框的确定元素""" return self.get_by_local.get_element('bleok') def get_location_ok(self): """弹出定位权限弹出框的确定元素""" return self.get_by_local.get_element('locationOk') def get_driver(self): """ 已找到的""" return self.get_by_local.get_element('driverList') def get_driver_ok(self): """当点击已找到的设备会有二次对话框,返回确定元素""" return self.get_by_local.get_element('connectSure') def get_page_source(self): """获取页面所有元素""" page_source = self.base_page.get_page_source() return page_source def swipe_down(self): self.base_page.swipe_down()
class Yanzhengmalogin_Page: #获取登录页面所有的页面元素信息 def __init__(self,driver): self.get_by_local = GetByLocal(driver) def get_password_login_element(self): ''' 获取密码登录按钮元素信息 ''' return self.get_by_local.get_element('yanzhengmalogin','password_login') def get_user_protocal_element(self): ''' 获取用户协议元素信息 ''' return self.get_by_local.get_element('yanzhengmalogin','userprotocal') def get_user_hideprotocal_element(self): ''' 获取用户隐私协议元素信息 ''' return self.get_by_local.get_element('yanzhengmalogin','userhideagrement') def get_child_hideprotocal_element(self): ''' 获取儿童隐私协议元素信息 ''' return self.get_by_local.get_element('yanzhengmalogin','childhideagrement')
class LoginPage: def __init__(self, i): base_driver = BaseDriver() self.driver = base_driver.android_driver(i) self.get_by_local = GetByLocal(self.driver) def get_username_element(self): #获取用户名元素信息 return self.get_by_local.get_element('username') def get_password_element(self): #获取密码元素信息 return self.get_by_local.get_element('password') def get_login_button_element(self): #获取登录按钮元素信息 return self.get_by_local.get_element('login_button', 'login_button_element') def get_forget_password_element(self): #获取忘记密码元素信息 return self.get_by_local.get_element('forget_password') def get_register_element(self): #获取注册元素信息 return self.get_by_local.get_element('register') def get_tost_element(self, message): #获取tost元素信息 tost_element = ("xpath", "//*[contains(@text," + message + ")]") return WebDriverWait(self.driver, 10, 0.1).until( EC.presence_of_element_located(tost_element))
class ClassdaydetailPage: #获取课节详情页所有元素 def __init__(self,driver): self.get_by_local = GetByLocal(driver) def get_lessonnum_element(self): ''' 获取讲次名称 ''' return self.get_by_local.get_element('classdaydetail','lessonnum') def get_playbackstatus_element(self): ''' 获取直播回放按钮 ''' return self.get_by_local.get_element('classdaydetail','watchplayback') def get_studytasks_element(self): ''' 获取学习任务列表 ''' return self.get_by_local.get_element('classdaydetail','studytasks') def get_studytaskstitle_element(self): ''' 获取学习任务标题列表 ''' return self.get_by_local.get_element('classdaydetail','studytaskstitle') def get_returnbutton_element(self): ''' 获取左上角返回按钮元素信息 ''' return self.get_by_local.get_element('classdaydetail','returnbutton')
class SuggestionPage: # 获取意见反馈页面所有元素 def __init__(self, driver): self.get_by_local = GetByLocal(driver) def get_return_element(self): ''' 获取返回按钮元素 ''' return self.get_by_local.get_element('suggestion','return') def get_editsuggestion_element(self): ''' 获取意见反馈编辑框 ''' return self.get_by_local.get_element('suggestion','editsuggestion') def get_submitbutton_element(self): ''' 获取提交按钮元素 ''' return self.get_by_local.get_element('suggestion','submitbutton') def get_toast_element(self,message): ''' 获取toastelement ''' toast_element = ("xpath", "//*[contains(@text,'" + message + "')]") print(toast_element) return WebDriverWait(self.driver,10,0.01).until(EC.presence_of_element_located(toast_element))
def login(): get_by_local = GetByLocal(driver) user_element = get_by_local.get_element('username') user_element.send_keys('18513199586') get_by_local.get_element('password').send_keys('111111') get_by_local.get_element('login_button').click()
class LoginPage: """获取登录页面的所有元素信息""" def __init__(self, driver): self.g = GetByLocal(driver) def get_username_element(self): """获取用户名element信息""" user_element = self.g.get_element("username") return user_element def get_password_element(self): """获取密码element信息""" password_element = self.g.get_element("passwd") return password_element def get_login_bun_element(self): """获取登录按钮element信息""" login_btn = self.g.get_element("login_btn") return login_btn def get_forget_password_element(self): """忘记密码按钮""" forget_password_element = self.g.get_element("forget_password") return forget_password_element def regeister_element(self): """注册按钮""" pass def get_tost_element(self, message): """断言""" tost_element = ("xpath", "//*[contains(@text," + message + ")]")
class WithusPage: # 获取关于我们所有的页面元素信息 def __init__(self, driver): self.get_by_local = GetByLocal(driver) def get_return_element(self): ''' 获取返回按钮元素 ''' return self.get_by_local.get_element('withuspage', 'return') def get_title_element(self): ''' 获取标题按钮 ''' return self.get_by_local.get_element('withuspage', 'title') def get_title_element(self): ''' 获取标题按钮 ''' return self.get_by_local.get_element('withuspage', 'title') def get_userprotocal_element(self): ''' 获取用户协议按钮 ''' return self.get_by_local.get_element('withuspage', 'userprotocal')
class LoginPage: # 获取登录页面所有的页面元素信息 def __init__(self, driver, i): self.driver = driver self.get_by_local = GetByLocal(self.driver) def get_token_element(self): ''' 获取token元素信息 ''' return self.get_by_local.get_element('token') def get_login_button_element(self): ''' 获取登陆按钮元素信息 ''' return self.get_by_local.get_element('login_button') def get_GitHub_element(self): ''' GitHub登录元素 ''' return self.get_by_local.get_element('github_button') def get_qcode_element(self): ''' 二维码扫面登录元素 ''' return self.get_by_local.get_element('qr_code_button')
class DialerPage: """ 页面层:获取拨号页面所有元素 """ def __init__(self): self.driver = BaseDriver().get_android_driver() self.get_by_local = GetByLocal(self.driver) # 获取拨号按钮 def get_dialer_button_element(self): dialer_button_element = self.get_by_local.get_element('dialer_button') return dialer_button_element # 获取号码文本框 def get_dialer_text_element(self): dialer_text_element = self.get_by_local.get_element('dialer_text') return dialer_text_element # 获取1号键 def get_dialer_one_element(self): dialer_one_element = self.get_by_local.get_element('dialer_one') return dialer_one_element # 获取快速拨号按钮 def get_dialer_quick_element(self): dialer_quick_element = self.get_by_local.get_element('dialer_quick') return dialer_quick_element # 获取通讯录按钮 def get_dialer_contact_element(self): dialer_contact_element = self.get_by_local.get_element( 'dialer_contact') return dialer_contact_element
class IndexPage: def __init__(self,driver): self.get_by_local = GetByLocal(driver) # 首页侧边栏按钮 def get_traggle_button(self): return self.get_by_local.get_element('traggle_button') # 头像 def get_avatar_button(self): return self.get_by_local.get_element('avatar')
class LoginPage: def __init__(self, i): base_driver = BaseDrvier() self.driver = base_driver.android_driver(i) self.get_by_local = GetByLocal(self.driver) def get_username_element(self): ''' 获取登录的元素 :return: ''' return self.get_by_local.get_element('login_element', 'username') def get_password_element(self): ''' 获取密码元素 :return: ''' return self.get_by_local.get_element('login_element', 'password') def get_login_button_element(self): ''' 获取登录按钮元素 :return: ''' return self.get_by_local.get_element('login_element', 'login_button') def get_toast_element(self, msg): ''' 获取toast用来断言 :return: ''' sleep(2) toast_element = ("xpath", "//*[contains(@text,'%s')]" % msg) self.getImage() return WebDriverWait(self.driver, 10, 0.1).until( EC.presence_of_all_elements_located(toast_element)) def getImage(self): ''' 截取图片,并保存在images文件夹 :return: 无 ''' timestrmap = time.strftime('%Y%m%d_%H.%M.%S') imgPath = os.path.join('../report/', '%s.png' % str(timestrmap)) print('this is imgPath:-----', imgPath) self.driver.save_screenshot(imgPath) print('screenshot:', timestrmap, '.png')
class LoginPage: #获取登录页面所有的登录信息 def __init__(self,i): base_driver = BaseDriver() self.driver = base_driver.android_driver(i) self.get_by_local = GetByLocal(self.driver) def get_username_element(self): return self.get_by_local.get_element('username') def get_password_element(self): return self.get_by_local.get_element('password') def get_login_button_element(self): return self.get_by_local.get_element('login_button')
class MinePage: def __init__(self, driver): self.get_by_local = GetByLocal(driver, "mine_element") def get_login_entrance(self): return self.get_by_local.get_element("login_entrance") def get_tab_mine(self): return self.get_by_local.get_element("tab_mine") def get_mine_req_entrance(self): return self.get_by_local.get_element("mine_req_entrance") def get_back_button(self): return self.get_by_local.get_element("back_button", "ALL")
class BasePage(object): def __init__(self, driver): self.driver = driver self.getByLocal = GetByLocal(self.driver) def get_toast(self, section, key): """获取toast""" message = self.getByLocal.get_element(section, key) toast = (By.XPATH, "//*[contains(@text," + message + ")]") WebDriverWait(self.driver, 5, 0.1).until(EC.presence_of_element_located(toast)) def switch_to_native(self): """切换NATIVE_APP""" self.driver.switch_to.context('NATIVE_APP') def switch_to_web_view(self, WEBVIEW=None): """切换内嵌h5""" view = self.driver.contexts if WEBVIEW: self.driver.switch_to.context(WEBVIEW) else: for v in view: if 'WEBVIEW' in v: self.driver.switch_to.context(v) break
class ZhuxiaouserPage: #获取注销账号所有的页面元素信息 def __init__(self, driver): self.get_by_local = GetByLocal(driver) def get_return_element(self): ''' 获取返回按钮元素信息 ''' return self.get_by_local.get_element('zhuxiaouser', 'returnbuttom') def get_title_element(self): ''' 获取标题元素信息 ''' return self.get_by_local.get_element('zhuxiaouser', 'title')
class CoursematerialPage: #获取课程资料页面全部元素 def __init__(self, driver): self.get_by_local = GetByLocal(driver) def get_pdfmaterial_element(self): ''' 获取pdf课程资料元素信息 ''' return self.get_by_local.get_element('coursematerial', 'pdf') def get_returnbutton_element(self): ''' 获取左上角返回按钮元素信息 ''' return self.get_by_local.get_element('coursematerial', 'returnbutton')
class PdfpreviewPage: #获取pdf预览页页面全部元素 def __init__(self,driver): self.get_by_local = GetByLocal(driver) def get_pdfpreview_element(self): ''' 获取pdf打开元素 ''' return self.get_by_local.get_element('pdfpreview','pdf') def get_returnbutton_element(self): ''' 获取左上角返回按钮元素信息 ''' return self.get_by_local.get_element('pdfpreview','returnbutton')
class CorrectresultPage: #获取批改结果页面所有元素 def __init__(self, driver): self.get_by_local = GetByLocal(driver) def get_teacherremark_element(self): ''' 获取老师评语元素信息 ''' return self.get_by_local.get_element('correctresult', 'teacherremark') def get_returnbutton_element(self): ''' 获取左上角返回按钮元素信息 ''' return self.get_by_local.get_element('correctresult', 'returnbutton')
class ProtocalalterPage: #获取协议弹窗页面所有页面元素信息 def __init__(self, driver): self.get_by_local = GetByLocal(driver) def get_agree_element(self): ''' 获取同意元素信息 ''' return self.get_by_local.get_element('protocalalter', 'agree') def get_notagree_element(self): ''' 获取不同意元素信息 ''' return self.get_by_local.get_element('protocalalter', 'agree')
class ZhuantiCoursePage: #获取专题课页面全部元素 def __init__(self, driver): self.get_by_local = GetByLocal(driver) def get_zhuanticoursereturn_element(self): ''' 获取专题课页面返回元素 ''' return self.get_by_local.get_element('zhuanticourse', 'return') def get_zhuanticoursesubjectchoose_elements(self): ''' 获取专题课页面题目素 ''' return self.get_by_local.get_element('zhuanticourse', 'subjectchoose')
def get_element(self, key, *args): find_element = GetByLocal(self.driver) try: element = find_element.get_element('Register', key) except Exception: element = 'error' return element
class SurelogoutPage: #获取登陆失效页面所有的页面元素信息 def __init__(self, driver): self.get_by_local = GetByLocal(driver) def get_oklogoutlogin_element(self): ''' 获取确定退出按钮元素 ''' return self.get_by_local.get_element('surelogout', 'okbutton') def get_cancellogoutlogin_element(self): ''' 获取取消退出按钮元素 ''' return self.get_by_local.get_element('surelogout', 'cancelbuttion')
class SetPage: #获取设置页面所有的页面元素信息 def __init__(self,driver): self.get_by_local = GetByLocal(driver) self.driver=driver def get_cancellogin_element(self): ''' 获取退出登录按钮元素信息 ''' return self.get_by_local.get_element('set','logoutlogin') def get_cancelusername_element(self): ''' 获取注销账号按钮元素信息 ''' return self.get_by_local.get_element('set','cancelusername') def get_cancelusernametext_element(self): ''' 获取注销账号按钮元素文案信息 ''' return self.get_by_local.get_element('set','cancelusernametext') def get_deletecache_element(self): ''' 获取清除缓存按钮元素信息 ''' return self.get_by_local.get_element('set','deletecache') def get_checkversion_element(self): ''' 获取检查版本按钮元素信息 ''' return self.get_by_local.get_element('set','checkversion') def get_protecteye_element(self): ''' 获取检查护眼模式按钮元素信息 ''' return self.get_by_local.get_element('set','protecteye') def get_withus_element(self): ''' 获取检查关于我们按钮元素信息 ''' return self.get_by_local.get_element('set','withus') def get_toast_element(self,message): ''' 获取toastelement ''' toast_element = ("xpath", "//*[contains(@text,'" + message + "')]") print(toast_element) return WebDriverWait(self.driver,10,0.1).until(EC.presence_of_element_located(toast_element)) def get_return_element(self): ''' 获取返回按钮元素 ''' return self.get_by_local.get_element('set','returnbutton')
class MessagePage: def __init__(self): self.driver = MessageDriver().get_android_driver() self.get_by_local = GetByLocal(self.driver) def get_new_mms_element(self): new_mms_element = self.get_by_local.get_element('message_button') return new_mms_element
class DeletelocalcachePage: # 获取清除缓存弹窗页面所有的页面元素信息 def __init__(self, driver): self.get_by_local = GetByLocal(driver) def get_ok_element(self): ''' 获取确定按钮元素 ''' return self.get_by_local.get_element('deletelocalcache', 'okbutton') def get_cancel_element(self): ''' 获取取消按钮元素 ''' return self.get_by_local.get_element('deletelocalcache', 'cancel')
class HomePage: def __init__(self, driver): self.get_by_local = GetByLocal(driver) def get_cityChangeArlert_ele(self): return self.get_by_local.get_element("location_alert", "home_element") def get_cityChangeAcceptButton_loc(self): return self.get_by_local.get_coordinate("location_alert_accept", "home_element") def get_cityChangeCancelButton_loc(self): return self.get_by_local.get_coordinate("location_alert_cancel", "home_element") def get_tab_home(self): return self.get_by_local.get_element("tab_home", "home_element")
class SeteyemodeconfirmPage: # 获取设置打开允许再其他应用上 所有的页面元素信息 def __init__(self, driver): self.get_by_local = GetByLocal(driver) def get_set_element(self): ''' 获取设置按钮元素 ''' return self.get_by_local.get_element('eyemodeconfirm', 'huawei') def get_return_element(self): ''' 获取返回按钮 ''' return self.get_by_local.get_element('eyemodeconfirm', 'return')
class SelfreinforcementPage: #获取自我巩固页面全部元素 def __init__(self, driver): self.get_by_local = GetByLocal(driver) def get_selfreinforcementreturn_element(self): ''' 获取自我巩固页面返回元素 ''' return self.get_by_local.get_element('selfreinforcement', 'returnbutton') def get_selfreinforcementjifen_elements(self): ''' 获取自我巩固页面积分元素 ''' return self.get_by_local.get_element('selfreinforcement', 'jifen')
class LoginPage: # 获取登录页面所有的页面元素信息 def __init__(self, driver): self.driver = driver self.get_by_local = GetByLocal(self.driver) def get_username_element(self): # 获取用户名元素信息 return self.get_by_local.get_element('username', 'parents_login_element') def get_password_element(self): # 获取密码元素信息 return self.get_by_local.get_element('password', 'parents_login_element') def get_login_button_element(self): # 获取登陆按钮元素信息 return self.get_by_local.get_element('login_button', 'parents_login_element') def get_forget_password_element(self): # 忘记密码元素 return self.get_by_local.get_element('forget_password', 'parents_login_element') def get_register_element(self): # 注册元素 return self.get_by_local.get_element('register', 'parents_login_element') def get_tost_element(self, message): # 获取tostelement time.sleep(2) tost_element = ("xpath", "//*[contains(@text," + message + ")]") return WebDriverWait(self.driver, 10, 0.1).until( EC.presence_of_element_located(tost_element)) def get_mime_element(self): # 首页元素 return self.get_by_local.get_element('mine', 'parents_login_element') def get_close_button_element(self): return self.get_by_local.get_element('close_button', 'parents_login_element') def get_learn_element(self, message): elements = self.get_by_local.get_element('learn_head', 'parents_login_element') learn_element = False for element in elements: if element.text == message: learn_element = element break print(learn_element.text) return learn_element