def __init__(self, driver): self.get_by_local = GetByLocal(driver) self.read_ini = ReadIni()
class ActionMethod: ''' 封装selenium操作函数 ''' def __init__(self): base_driver = Base_Driver() self.driver = base_driver.get_driver() self.get_element_local = GetByLocal() get_size = self.get_size() def input(self, row, value): ''' 封装操作动作s ''' element = self.get_element_local.get_local_path(row) if element == None: return logging.info('元素没找到') element.send_keys(value) logging.info('输入' + value) def on_click(self): ''' 封装点击操作 :return: ''' element = self.get_element_local.get_element() if element == None: return logging.info('元素没找到') element.click() logging.info('点击元素' + element) def swipe_left(self): ''' 封装滑动操作 :param self: :return: ''' x1 = self.get_size()[0] / 10 * 9 y1 = self.get_size()[1] / 2 x = self.get_size()[0] / 10 # swipe有4个左边参数,数值2000表示坐标移动的时间 self.driver.swipe(x1, y1, x, y1, 2000) logging.info('向左滑动') def swipe_rigth(self): ''' 封装滑动操作 :param self: :return: ''' x1 = self.get_size()[0] / 10 y1 = self.get_size()[1] / 2 x = self.get_size()[0] / 10 * 9 # swipe有4个左边参数,数值2000表示坐标移动的时间 self.driver.swipe(x1, y1, x, y1, 2000) logging.info('向右滑动') def swipe_up(self): ''' 封装滑动操作 :param self: :return: ''' x = self.get_size()[0] / 2 y1 = self.get_size()[1] / 10 * 6 y = self.get_size()[1] / 10 * 2 # swipe有4个左边参数,数值2000表示坐标移动的时间 self.driver.swipe(x, y1, x, y, 2000) logging.info('向上滑动') def swipe_down(self): ''' 封装滑动操作 :param self: :return: ''' x = self.get_size()[0] / 2 y1 = self.get_size()[1] / 10 y = self.get_size()[1] / 10 * 9 # swipe有4个左边参数,数值2000表示坐标移动的时间 self.driver.swipe(x, y1, x, y, 2000) logging.info('向下滑动') def get_size(self): x = self.driver.get_window_size()['width'] y = self.driver.get_window_size()['heigth'] return x, y, def sleep_time(self, t): time.sleep(t) logging.info('等待')
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 __init__(self): base_driver = BaseDriver() self.driver = base_driver.android_driver(0) self.get_by_local = GetByLocal(self.driver)
def __init__(self, driver): self.driver = driver self.getByLocal = GetByLocal(self.driver)
class RegistratonPage(object): def __init__(self, driver): self.driver = driver self.get_by_local = GetByLocal(self.driver) def get_resgistration_title(self): """ 获取注册页面title """ return self.get_by_local.get_element("resgistration_title", "registration_element") def get_resgistration_cancel(self): """ 获取右上角取消按钮 """ return self.get_by_local.get_element("registration_cancel", "registration_element") def get_validation_mobile(self): """ 获取验证手机号元素 """ return self.get_by_local.get_element("validation_mobile", "registration_element") def get_input_validation_mobile(self): """ 获取输入手机号码框元素 """ return self.get_by_local.get_element("input_validation_mobile", "registration_element") def get_input_mobile_verification_code(self): """ 获取验证码输入框元素 """ return self.get_by_local.get_element("input_mobile_verification_code", "registration_element") def get_sms_verification_code(self): """ 获取短信验证码按钮元素 """ return self.get_by_local.get_element("sms_verification_code", "registration_element") def get_agree_deal(self): """ 获取勾选协议元素 """ return self.get_by_local.get_element("agree_deal", "registration_element") def get_submit_validation(self): """ 获取提交验证码按钮 """ return self.get_by_local.get_element("submit_validation", "registration_element") def get_setting_password_text(self): """ 获取设置密码文案元素 """ return self.get_by_local.get_element("setting_password_text", "registration_element") def get_setting_password_input(self): """ 获取登录密码输入框元素 """ return self.get_by_local.get_element("setting_password_input", "registration_element") def get_recommended_id(self): """ 获取推荐人id元素 """ return self.get_by_local.get_element("recommended_id", "registration_element") def get_commit_setting_succese(self): """ 获取完成设置按钮元素 """ return self.get_by_local.get_element("commit_setting_succese", "registration_element") def get_resgistration_success(self): """ 获取注册完成元素 """ return self.get_by_local.get_element("resgistration_success", "registration_element") def get_resgistration_success_text(self): """ 获取注册完成文案元素 """ return self.get_by_local.get_element("resgistration_success_text", "registration_element") def get_continue_real_name_authentication(self): """ 获取继续完成实名认证元素 """ return self.get_by_local.get_element( "continue_real_name_authentication", "registration_element") def get_to_go_first(self): """ 获取先逛一逛元素 """ return self.get_by_local.get_element("to_go_first", "registration_element") def get_website_service_agreement(self): """ 获取网站服务协议元素 """ return self.get_by_local.get_element("website_service_agreement", "registration_element") def get_risk_note(self): """ 获取风险提示书 """ return self.get_by_local.get_element("risk_note", "registration_element") def get_registration_return(self): """ 获取返回元素 """ return self.get_by_local.get_element("registration_return", "registration_element")
def __init__(self, i): base_driver = BaseDriver(i) # self.driver = base_driver.Android_driver() self.driver = base_driver.Ios_driver() self.get_by_local = GetByLocal(self.driver)
class ActionMethod: def __init__(self): basedriver = BaseDrvier() self.driver = basedriver.android_driver(0) self.get_by_local = GetByLocal(self.driver) def input(self, *args): ''' 输入值 :param element_key: :param value: :return: ''' element = self.get_by_local.get_element(args[0]) if element == None: return args[0], "元素没找到" element.send_keys(args[1]) def on_click(self, *args): ''' 元素点击 :param element_key: :return: ''' if args[0] == None: return False else: element = self.get_by_local.get_element(args[0]) if element == None: return args[0], "元素没找到" element.click() def sleep_time(self, *args): time.sleep(int(args[0])) def get_size(self, *args): size = self.driver.get_window_size() width = size['width'] height = size['height'] return width, height def swipe_left(self, *args): x1 = self.get_size()[0] / 10 * 9 y1 = self.get_size()[1] / 2 x = self.get_size()[0] / 10 self.driver.swipe(x1, y1, x, y1) # 向右滑动 def swipe_right(self, *args): x1 = self.get_size()[0] / 10 y1 = self.get_size()[1] / 2 x = self.get_size()[0] / 10 * 9 self.driver.swipe(x1, y1, x, y1) # 向上滑动 def swipe_up(self, *args): print('开始执行向上滑动的方法') x1 = self.get_size()[0] / 2 y1 = self.get_size()[1] / 10 * 6 y = self.get_size()[1] / 10 * 2 self.driver.swipe(x1, y1, x1, y, 1000) # 向下滑动 def swipe_down(self, *args): x1 = self.get_size()[0] / 2 y1 = self.get_size()[1] / 10 y = self.get_size()[1] / 10 * 9 self.driver.swipe(x1, y1, x1, y) def swipe_on(self, direction): if direction == 'up': self.swipe_up() elif direction == 'down': self.swipe_down() elif direction == 'left': self.swipe_left() else: self.swipe_right() def get_element(self, *args): element = self.get_by_local.get_element(args[0]) if element == '': return None return element def get_toast(self, *args): ''' 获取toast用来断言 :return: ''' print('获取到toast的预期元素-------', args[0]) toast_element = ("xpath", "//*[contains(@text,'%s')]" % args[0]) 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')
def __init__(self): self.driver = MessageDriver().get_android_driver() self.get_by_local = GetByLocal(self.driver)
class ManualPage(BasePage): '''获取手动归集页面元素''' def __init__(self, driver): self.driver = driver self.getByLocal = GetByLocal(self.driver) def get_manualAdd_element(self): """获取手动新增按钮""" return self.getByLocal.get_element('manual_element', 'manualAdd') def get_manualCheck_element(self): """获取手动查验按钮""" return self.getByLocal.get_element('manual_element', 'manualCheck') def get_inputCode_element(self): """获取发票代码输入框""" return self.getByLocal.get_element('manual_element', 'inputCode') def get_inputNumber_element(self): """获取发票号码输入框""" return self.getByLocal.get_element('manual_element', 'inputNumber') def get_inputCheckCode_element(self): """获取发票校验码输入框""" return self.getByLocal.get_element('manual_element', 'inputCheckCode') def get_inputNonTaxPrice_element(self): """获取不含税价输入框""" return self.getByLocal.get_element('manual_element', 'inputNonTaxPrice') def get_inputInvoiceDate_element(self): """获取开票日期输入框""" return self.getByLocal.get_element('manual_element', 'inputInvoiceDate') def get_determine_element(self): """获取确定按钮""" return self.getByLocal.get_element('manual_element', 'determine') def get_dateEidex_element(self): """获取增票日期控件选择框(年月日)""" return self.getByLocal.get_element('manual_element', 'dateEidex') def get_trainTicket_element(self): """获取火车票按钮""" return self.getByLocal.get_element('manual_element', 'trainTicket') def get_taxiTicket_element(self): """获取打车票按钮""" return self.getByLocal.get_element('manual_element', 'taxiTicket') def get_trainNum_element(self): """获取车次输入框""" return self.getByLocal.get_element('manual_element', 'trainNum') def get_trainDate_element(self): """获取车票日期输入框""" return self.getByLocal.get_element('manual_element', 'trainDate') def get_startStation_element(self): """获取始发站输入框""" return self.getByLocal.get_element('manual_element', 'startStation') def get_endStation_element(self): """获取终点站输入框""" return self.getByLocal.get_element('manual_element', 'endStation') def get_trainMoney_element(self): """获取车票金额输入框""" return self.getByLocal.get_element('manual_element', 'trainMoney') def get_trainName_element(self): """获取车票姓名输入框""" return self.getByLocal.get_element('manual_element', 'trainName') def get_checkButton_element(self): """获取查验按钮""" return self.getByLocal.get_element('manual_element', 'checkButton') def back(self): """返回""" self.driver.back()
def get_element(self, id): # 实例化对象 get_by_element = GetByLocal(self.driver) element = get_by_element.get_local_element(id) return element
def __init__(self, i): base_driver = BaseDriver() self.driver = base_driver.android_driver(i) self.get_by_local = GetByLocal(self.driver) self.base_web_obj = GetWeb() # 获取web端的公共类
def __init__(self): base_driver = Base_Driver() self.driver = base_driver.get_driver() self.get_element_local = GetByLocal() get_size = self.get_size()
def __init__(self, i): self.driver = self.android_driver(i) self.gbl = GetByLocal(self.driver) self.page = 'LoginPage'
def __init__(self, *args): self.type = args[0] self.get_by_local = GetByLocal() # args[2]表示读哪个sheet,int类型 # args[1]表示测试Excel名称,类似../config/name.xls self.data = GetData(args[1], args[2])
def login_page(): get_by_local = GetByLocal(driver) get_by_local.get_element('username1').send_keys('13439075603') get_by_local.get_element('password').send_keys('1qaz2wsx') get_by_local.get_element('login_button').click()
class MinePage: """获取我的模块所有的页面元素信息""" def __init__(self, driver): self.get_by_local = GetByLocal(driver) self.read_ini = ReadIni() def wait_element(self, section, option): """元素等待&获取元素信息""" global value start_t = time.time() try: value = self.read_ini.get_value(section, option) self.get_by_local.element_wait(section, option) el = self.get_by_local.get_element(section, option) logger.info("{0} Get element: <{1}>, Spend {2} seconds".format( success, value, round(time.time() - start_t, 2))) return value, el except Exception: logger.info( "{0} Unable to get element <{1}>, Spend {2} seconds".format( fail, value, round(time.time() - start_t, 2))) raise def get_mine_tab_element(self): """获取我的tab元素信息""" return self.wait_element('mine_element', 'mine_tab') def get_user_image_element(self): """获取头像元素信息""" return self.wait_element('mine_element', 'user_image') def get_user_name_element(self): """获取用户名元素信息""" return self.wait_element('mine_element', 'user_name') def get_login_title_element(self): """获取登录标题元素信息""" return self.wait_element('mine_element', 'login_title') def get_friend_btn_element(self): """获取好友元素信息""" return self.wait_element('mine_element', 'friend_btn') def get_collect_btn_element(self): """获取收藏元素信息""" return self.wait_element('mine_element', 'collect_btn') def get_collect_count_element(self): """获取收藏数元素信息""" return self.wait_element('mine_element', 'collect_count') def get_notice_btn_element(self): """获取消息元素信息""" return self.wait_element('mine_element', 'notice_btn') def get_sign_btn_element(self): """获取签到元素信息""" return self.wait_element('mine_element', 'sign_btn') def get_onePrice_btn_element(self): """获取一元购课元素信息""" return self.wait_element('mine_element', 'onePrice_btn') def get_myCourse_btn_element(self): """获取我的课程元素信息""" return self.wait_element('mine_element', 'myCourse_btn') def get_inviteReward_btn_element(self): """获取邀请奖励元素信息""" return self.wait_element('mine_element', 'inviteReward_btn') def get_welfare_btn_element(self): """获取福利中心元素信息""" return self.wait_element('mine_element', 'welfare_btn') def get_ad_btn_element(self): """获取广告元素信息""" return self.wait_element('mine_element', 'ad_btn') def get_childInfo_btn_element(self): """获取孩子档案元素信息""" return self.wait_element('mine_element', 'childInfo_btn') def get_childInfoIntroduce_element(self): """获取孩子档案介绍元素信息""" return self.wait_element('mine_element', 'childInfoIntroduce') def get_showcaseView_btn_element(self): """获取我的发表元素信息""" return self.wait_element('mine_element', 'showcaseView_btn') def get_courseOrder_btn_element(self): """获取课程订单元素信息""" return self.wait_element('mine_element', 'courseOrder_btn') def get_orderIntroduce_element(self): """获取课程订单介绍元素信息""" return self.wait_element('mine_element', 'orderIntroduce') def get_growthRecord_btn_element(self): """获取成长记录元素信息""" return self.wait_element('mine_element', 'growthRecord_btn') def get_growthRecordNewFlag_element(self): """获取成长记录NEW元素信息""" return self.wait_element('mine_element', 'growthRecordNewFlag') def get_growthRecordIntroduce_element(self): """获取成长记录介绍元素信息""" return self.wait_element('mine_element', 'growthRecordIntroduce') def get_browseHistory_btn_element(self): """获取浏览记录元素信息""" return self.wait_element('mine_element', 'browseHistory_btn') def get_historyPush_btn_element(self): """获取历史推送元素信息""" return self.wait_element('mine_element', 'historyPush_btn') def get_historyPushIntroduce_element(self): """获取历史推送介绍元素信息""" return self.wait_element('mine_element', 'historyPushIntroduce') def get_help_feedback_btn_element(self): """获取帮助与反馈元素信息""" return self.wait_element('mine_element', 'help_feedback_btn') def get_setting_btn_element(self): """获取设置元素信息""" return self.wait_element('mine_element', 'setting_btn') # ---------------------------------------------------------------------- def get_updatePersonal_element(self): """获取用户资料页修改资料元素信息""" return self.wait_element('secLevel_element', 'update_personal') def get_userName_element(self): """获取用户资料页用户名元素信息""" return self.wait_element('secLevel_element', 'user_name') def get_threadName_element(self): """获取用户资料页流文案元素信息""" return self.wait_element('secLevel_element', 'thread_name') def get_friend_title_element(self): """获取好友页标题元素信息""" return self.wait_element('secLevel_element', 'friend_title') def get_recommend_friend_element(self): """获取好友页推荐好友元素信息""" return self.wait_element('secLevel_element', 'recommend_friend') def get_agency_element(self): """获取好友页机构元素信息""" return self.wait_element('secLevel_element', 'agency') def get_collect_time_element(self): """获取收藏页标题元素信息""" return self.wait_element('secLevel_element', 'collect_time') def get_collect_title_element(self): """获取收藏页时间元素信息""" return self.wait_element('secLevel_element', 'collect_title') def get_notice_sendLetter_element(self): """获取消息页发信元素信息""" return self.wait_element('secLevel_element', 'notice_send_letter') def get_notice_bang_element(self): """获取消息页帮通知元素信息""" return self.wait_element('secLevel_element', 'notice_bang') def get_notice_1_element(self): """获取消息页通知元素信息""" return self.wait_element('secLevel_element', 'notice_1')
def __init__(self): self.driver = Base_Driver().get_driver() self.get_by_local = GetByLocal(self.driver)
class LoginPage(object): #获取登录页面所有的页面元素信息 def __init__(self, driver): self.driver = driver self.get_by_local = GetByLocal(self.driver) ''' base_driver = BaseDriver() self.driver = base_driver.android_driver(i) self.get_by_local = GetByLocal(self.driver) ''' def get_launch_page_element(self): """ 获取启动页面的轮播图 """ return self.get_by_local.get_element("launch_page", "launch_page_element") def get_login_title_element(self): """ 获取登录title页面元素 """ return self.get_by_local.get_element("mobile_login", "login_element") def get_login_bounced(self): """ 登录后出现弹窗 """ return self.get_by_local.get_element("login_bounced", "login_element") def get_login_right_element(self): """ 获取右上角取消按钮 """ return self.get_by_local.get_element("cancel", "login_element") def get_uernsme_element(self): """ 获取手机及用户名登录元素信息 """ return self.get_by_local.get_element("mobile_login", "login_element") def get_password_element(self): """ 获取登录密码元素信息 """ return self.get_by_local.get_element("mobile_login_password", "login_element") def get_login_button_element(self): """ 获取登录按钮元素信息 """ return self.get_by_local.get_element("login_buttion", "login_element") def get_forgot_password_element(self): """ 获取忘记登录密码元素信息 """ return self.get_by_local.get_element("forgot_password", "login_element") def get_normal_login_element(self): """ 普通登录元素 """ return self.get_by_local.get_element("normal_login", "login_element") def get_free_registration_element(self): """ 免费注册元素 """ return self.get_by_local.get_element("free_registration", "login_element") def get_cancel_element(self): """ 取消按钮元素信息 """ return self.get_by_local.get_element("cancel", "login_element") def get_account_element(self): """ 获取账户按钮元素信息 """ return self.get_by_local.get_element("account", "login_element") def get_toast_element(self, message): """ 获取toast元素信息,5.0以上手机可用 """ time.sleep(2) toast_element = ("xpath", "//*[contains(@text,'+message+')]") return WebDriverWait(self.driver, 10, 0.1).until( EC.presence_of_element_located(toast_element)) def get_gestures_password(self): """ 获取手势密码框元素 """ return self.get_by_local.get_element("gestures_password", "login_element") def get_set_new_password(self): """ 设置新手手势密码 """ return self.get_by_local.get_element("set_new_password", "login_element") def get_confirm_new_password(self): """ 确认手势密码 """ return self.get_by_local.get_element("confirm_new_password", "login_element") def get_two_password_mismatch(self): """ 两次密码不一致 """ return self.get_by_local.get_element("two_password_mismatch", "login_element") def get_forget_gesture_password(self): """ 忘记手势密码 """ return self.get_by_local.get_element("forget_gesture_password", "login_element")
def __init__(self, i): base_driver = BaseDriver() self.driver = base_driver.android_driver(i) self.get_by_local = GetByLocal(self.driver) self.app_start_swipe = AppStartSwipe(self.driver)
class ActionMethod: def __init__(self): base_driver = BaseDriver() self.driver = base_driver.android_driver(0) self.get_by_local = GetByLocal(self.driver) def input(self, *args): ''' 输入值 ''' # key,value element = self.get_by_local.get_element(args[0]) if element == None: return args[0], "元素没找到" element.send_keys(args[1]) def on_click(self, *args): ''' 元素点击 ''' element = self.get_by_local.get_element(args[0]) if element == None: return args[0], "元素没找到" element.click() def sleep_time(self, *args): time.sleep(int(args[0])) # 获取屏幕的宽高 def get_size(self, *args): size = self.driver.get_window_size() width = size['width'] height = size['height'] return width, height # 向左边滑动 def swipe_left(self, *args): #[100,200] x1 = self.get_size()[0] / 10 * 9 y1 = self.get_size()[1] / 2 x = self.get_size()[0] / 10 self.driver.swipe(x1, y1, x, y1, 2000) # 向右边滑动 def swipe_right(self, *args): #[100,200] x1 = self.get_size()[0] / 10 y1 = self.get_size()[1] / 2 x = self.get_size()[0] / 10 * 9 self.driver.swipe(x1, y1, x, y1, 2000) # 向上滑动 def swipe_up(self, *args): #[100,200]direction x1 = self.get_size()[0] / 2 y1 = self.get_size()[1] / 10 * 6 y = self.get_size()[1] / 10 * 2 self.driver.swipe(x1, y1, x1, y, 1000) # 向下滑动 def swipe_down(self, *args): #[100,200] x1 = self.get_size()[0] / 2 y1 = self.get_size()[1] / 10 y = self.get_size()[1] / 10 * 9 self.driver.swipe(x1, y1, x1, y) def get_element(self, *args): element = self.get_by_local.get_element(args[0]) if element == None: return None return element def get_tost_element(self, *args): ''' 获取tostelement ''' time.sleep(2) tost_element = ("xpath", "//*[contains(@text," + args[0] + ")]") return WebDriverWait(self.driver, 10, 0.1).until( EC.presence_of_element_located(tost_element))
def __init__(self, driver): self.get_by_local = GetByLocal(driver) self.mine_handle = MineHandle(driver) self.mine_page = MinePage(driver)
class BasePage: def __init__(self): self.driver = DriverUtil.get_driver() self.my_local = GetByLocal(self.driver) self.custom_name = My_Custom_Name() ''' 获取toast元素信息 ''' def get_toast(self, message, timeout, poll_frequency): try: toast_element = ("xpath", "//*[contains(@text, " + "'" + message + "'" + ")]") toast = WebDriverWait(self.driver, timeout, poll_frequency)\ .until( EC.presence_of_all_elements_located(toast_element)) print('获取到了toast:',toast[0].text) return True except Exception as e: # print('Exception message',e) return False ''' 获取自定义房间中的设备名称(如:欧标插座) ''' def get_custom_element(self, message, timeout, poll_frequency): try: custom_element = ("xpath", "//*[contains(@text, " + "'" + message + "'" + ")]") WebDriverWait(self.driver, timeout, poll_frequency)\ .until(EC.presence_of_element_located(custom_element)) # print('获取到了元素:',toast.text,type) return self.driver.find_element_by_xpath(custom_element[1]) except Exception: # raise e # print('没有获取到元素') return None ''' 找到元素 ''' def find_element(self,loc_key, element = None, file_path = None): try: element = WebDriverWait(self.driver,5, poll_frequency=0.5) \ .until(lambda driver: self.my_local.get_element(loc_key,element,file_path)) return element except Exception: return None ''' 房间 ''' def get_room_element(self): return self.find_element('room') ''' 添加设备 ''' def get_add_device_element(self): return self.find_element('add_device') ''' 离线元素 ''' def get_offline_element(self): return self.find_element('is_offline') ''' 离线框关闭按钮 ''' def get_offline_close(self): return self.find_element('universal_offline_close') ''' 获取toast元素 如加载失败 ''' def get_toast_element(self, message): if self.get_toast(message, 5, 0.5): return True else: return False ''' 返回到插件首页的按钮 ''' def get_plugin_back_homepage_element(self): return self.find_element('plugin_back_homepage') ''' 通过返回按钮:房间页面返回房间列表页面 ''' def get_room_list_back_element(self): return self.find_element('room_list_back') ''' 三个点 ''' def get_more_element(self): return self.find_element('more') '''设置-定时''' def get_timing_section_element(self): return self.find_element('timing_section') '''定时页面+号按钮''' def get_timing_add_button_element(self): return self.find_element('timing_add_button') '''定时页面-定时picker_view''' def get_timing_picker_view_element(self): return self.find_element('timing_picker_view') '''定时页面-时间段定时''' def get_time_period_element(self): return self.find_element('time_period') '''定时页面-定时开启''' def get_time_on_element(self): return self.find_element('time_on') '''定时页面-定时关闭''' def get_time_off_element(self): return self.find_element('time_off') '''具体定时页面picker_view左边''' def get_picker_view_left_element(self): return self.find_element('picker_view_left') '''具体定时页面picker_view右边''' def get_picker_view_right_element(self): return self.find_element('picker_view_right') '''底部确定按钮''' def get_picker_bottom_confirm_element(self): return self.find_element('picker_view_bottom_confirm') '''重复选项picker_view''' def get_repeat_option_picker_view_element(self): return self.find_element('repeat_option_picker_view') '''执行一次''' def get_repeat_option_picker_one_cell_element(self): return self.find_element('repeat_option_picker_one_cell') '''每天''' def get_repeat_option_picker_two_cell_element(self): return self.find_element('repeat_option_picker_two_cell') '''法定工作日''' def get_repeat_option_picker_three_cell_element(self): return self.find_element('repeat_option_picker_three_cell') '''法定节假日''' def get_repeat_option_picker_forth_cell_element(self): return self.find_element('repeat_option_picker_forth_cell') '''自定义''' def get_repeat_option_picker_fifth_cell_element(self): return self.find_element('repeat_option_picker_fifth_cell') '''定时确定''' def get_title_bar_timing_confirm_element(self): return self.find_element('title_bar_timing_confirm') '''定时取消''' def get_title_bar_timing_cancel_element(self): return self.find_element('title_bar_timing_cancel') ''' 请设置关闭时间 ''' def get_timing_none_toast_element(self): return self.find_element('off_time_none') ''' 定时功能左上角关闭按钮 ''' def get_title_bar_return_button_element(self): return self.find_element('return_to_timing') ''' 重复一次 ''' def get_repeat_cell_element(self): return self.find_element('repeat') ''' 开启 ''' def get_view_timer_on_cell_element(self): return self.find_element('view_timer_on') ''' 关闭 ''' def get_view_timer_off_cell_element(self): return self.find_element('view_timer_off') ''' 自定义重复选项:周日 ''' def get_custom_repeat_sunday_element(self): return self.find_element('custom_repeat_sunday') ''' 开启的具体时间 ''' def get_timer_on_detail_element(self): return self.find_element('timer_on_detail') ''' 关闭的具体时间 ''' def get_timer_off_detail_element(self): return self.find_element('timer_off_detail') '''设置-设备名称''' def get_device_name_settings_element(self): return self.find_element('device_name_settings') '''修改设备名称-删除按钮''' def get_input_view_clear_element(self): return self.find_element('input_view_clear') '''修改设备名称-编辑框''' def get_input_view_edit_element(self): return self.find_element('input_view_edit') '''修改设备名称-确认删除''' def get_confirm_button_element(self): return self.my_local.get_element('modal_ok_btn') # return self.find_element('modal_ok_btn') '''修改设备名称-取消确认''' def get_cancel_button_element(self): return self.my_local.get_element('modal_cancel_btn') # return self.find_element('modal_cancel_btn') '''设置-设备名称-具体名称''' def get_right_detail_device_name_element(self): return self.find_element('device_name_right_detail') '''设置-设备名称-超出最大字符限制''' def get_exceeded_the_maximum_character_limit_alert(self): return self.find_element('exceeded_the_maximum_character_limit_alert') '''发现附近设备弹窗''' def get_discovery_device_alert_element(self): return self.my_local.get_element('discovery_device_modal') '''家庭共享弹窗''' def get_home_share_alert_element(self): return self.my_local.get_element('home_share_modal') '''门锁报警弹窗类的我知道了按钮''' def get_home_i_know_alert_element(self): return self.my_local.get_element('home_i_know_tips') '''升级提醒框''' def get_device_upgrade_alert_element(self): return self.my_local.get_element('device_upgrade_modal_desc') '''进入插件的loading图标''' def get_loading_element(self): return self.my_local.get_element('device_loading_icon') '''授权弹窗''' def get_user_licence_title_element(self): return self.my_local.get_element('user_license_title') '''授权弹窗确认授权按钮''' def get_user_licence_agree_element(self): return self.my_local.get_element('user_license_agree') '''room_tag 判断是否还停留在房间页面''' def get_room_tag_element(self): return self.my_local.get_element('room_tag') ''' 截屏 ''' def get_screen_shot_image(self): imageRGB = ImageRGBD() file_path = imageRGB.get_screenshot_path() self.driver.get_screenshot_as_file(file_path) return file_path
class ActionMethod: def __init__(self): base_driver = BaseDriver() self.driver = base_driver.android_driver(0) self.get_by_local = GetByLocal(self.driver) def input(self, *args): ''' 输入值 ''' # key,value element = self.get_by_local.get_element(args[0]) if element == None: return args[0], "元素没找到" element.send_keys(args[1]) def on_click(self, *args): ''' 元素点击 ''' element = self.get_by_local.get_element(args[0]) if element == None: return args[0], "元素没找到" element.click() def sleep_time(self, *args): time.sleep(int(args[0])) # 获取屏幕的宽高 def get_size(self, *args): size = self.driver.get_window_size() width = size['width'] height = size['height'] return width, height # 向左边滑动 def swipe_left(self, *args): #[100,200] x1 = self.get_size()[0] / 10 * 9 y1 = self.get_size()[1] / 2 x = self.get_size()[0] / 10 self.driver.swipe(x1, y1, x, y1, 2000) # 向右边滑动 def swipe_right(self, *args): #[100,200] x1 = self.get_size()[0] / 10 y1 = self.get_size()[1] / 2 x = self.get_size()[0] / 10 * 9 self.driver.swipe(x1, y1, x, y1, 2000) # 向上滑动 def swipe_up(self, *args): #[100,200]direction x1 = self.get_size()[0] / 2 y1 = self.get_size()[1] / 10 * 6 y = self.get_size()[1] / 10 * 2 self.driver.swipe(x1, y1, x1, y, 1000) # 向下滑动 def swipe_down(self, *args): #[100,200] x1 = self.get_size()[0] / 2 y1 = self.get_size()[1] / 10 y = self.get_size()[1] / 10 * 9 self.driver.swipe(x1, y1, x1, y) def get_element(self, *args): element = self.get_by_local.get_element(args[0]) if element == None: return None return element
def __init__(self): self.driver = DriverUtil.get_driver() self.my_local = GetByLocal(self.driver) self.custom_name = My_Custom_Name()
class LoginPage: """获取登录页所有的页面元素信息""" def __init__(self, driver): self.get_by_local = GetByLocal(driver) self.read_ini = ReadIni() def wait_element(self, section, option): """元素等待&获取元素信息""" value = self.read_ini.get_value(section, option) self.get_by_local.element_wait(section, option) el = self.get_by_local.get_element(section, option) return value, el def get_login_panel_element(self): """获取登录/注册弹框元素信息""" return self.wait_element('login_panel_element', 'login_panel') def get_close_btn_element(self): """获取关闭按钮元素信息""" return self.wait_element('login_panel_element', 'close_btn') def get_gift_image_element(self): """获取新人礼包图片元素信息""" return self.wait_element('login_panel_element', 'gift_image') def get_register_btn_element(self): """获取注册按钮元素信息""" return self.wait_element('login_panel_element', 'register_btn') def get_loginPanel_wechat_element(self): """获取弹框上微信登录元素信息""" return self.wait_element('login_panel_element', 'wechat_btn') def get_phone_btn_element(self): """获取手机登录元素信息""" return self.wait_element('login_panel_element', 'phone_btn') # ---------------------------------------------------------------------- def get_loginPage_back_element(self): """获取登录页面返回按钮元素信息""" return self.wait_element('phoneLoginRegister_element', 'back') def get_loginRegister_title_element(self): """获取标题元素信息""" return self.wait_element('phoneLoginRegister_element', 'title_text') def get_phone_input_element(self): """获取手机号输入框元素信息""" return self.wait_element('phoneLoginRegister_element', 'phone_input') def get_clear_btn_element(self): """获取清空按钮元素信息""" return self.wait_element('phoneLoginRegister_element', 'clear_btn') def get_sendMsgCode_btn_element(self): """获取发送验证码按钮元素信息""" return self.wait_element('phoneLoginRegister_element', 'sendMsgCode_btn') def get_bottom_text_element(self): """获取底部文案元素信息""" return self.wait_element('phoneLoginRegister_element', 'bottom_text') def get_protocol_btn_element(self): """获取用户协议入口元素信息""" return self.wait_element('phoneLoginRegister_element', 'protocol_btn') def get_pwLogin_btn_element(self): """获取密码登录入口元素信息""" return self.wait_element('phoneLoginRegister_element', 'pwLogin_btn') def get_qq_btn_element(self): """获取QQ登录按钮元素信息""" return self.wait_element('phoneLoginRegister_element', 'qq_btn') def get_loginPage_wechat_element(self): """获取微信登录按钮元素信息""" return self.wait_element('phoneLoginRegister_element', 'wechat_btn') def get_weibo_btn_element(self): """获取微博登录元素信息""" return self.wait_element('phoneLoginRegister_element', 'weibo_btn') # ---------------------------------------------------------------------- def get_msg_title_element(self): """获取输入验证码页面标题元素信息""" return self.wait_element('phoneLoginRegister_element', 'title_text') def get_sendTo_text_element(self): """获取验证码已发送至xxx文案元素信息""" return self.wait_element('sendMsgCode_page_element', 'sendTo_text') def get_code_input_element(self): """获取验证码输入框元素信息""" return self.wait_element('sendMsgCode_page_element', 'code_input') def get_login_btn_element(self): """获取登录按钮元素信息""" return self.wait_element('sendMsgCode_page_element', 'login_btn') def get_reSend_text_element(self): """获取重发文案""" return self.wait_element('sendMsgCode_page_element', 'reSend_text') def get_sendMsgBack_element(self): """获取输入验证码页面返回按钮元素信息""" return self.wait_element('sendMsgCode_page_element', 'back') def get_alert_text_element(self): """获取确认框文案元素信息""" return self.wait_element('sendMsgCode_page_element', 'alert_text') def get_alert_ok_elemnt(self): """获取确认框确认按钮元素信息""" return self.wait_element('sendMsgCode_page_element', 'alert_ok') def get_alert_cancel_element(self): """获取确认框取消按钮元素信息""" return self.wait_element('sendMsgCode_page_element', 'alert_cancel') # ---------------------------------------------------------------------- def get_pwLoginBack_element(self): """获取用户名密码页返回按钮元素信息""" return self.wait_element('sendMsgCode_page_element', 'back') def get_title_element(self): """获取用户名密码页标题文案元素信息""" return self.wait_element('pwLogin_element', 'title') def get_findpw_btn_element(self): """获取找回密码元素信息""" return self.wait_element('pwLogin_element', 'findpw_btn') def get_user_input_element(self): """获取用户名输入框元素信息""" return self.wait_element('pwLogin_element', 'user_input') def get_pw_input_element(self): """获取密码输入框元素信息""" return self.wait_element('pwLogin_element', 'pw_input') def get_pwLoginBtn_element(self): """获取登录按钮元素信息""" return self.wait_element('pwLogin_element', 'login_btn') def get_tryPhone_text_element(self): """获取底部文案元素信息""" return self.wait_element('pwLogin_element', 'tryPhone_text') def get_tryPhone_btn_element(self): """获取手机号登录入口元素信息""" return self.wait_element('pwLogin_element', 'tryPhone_btn')
class NoticePage: # 获取登录页面所有的页面元素信息 def __init__(self, driver): self.driver = driver self.get_by_local = GetByLocal(self.driver) def get_school_element(self): # 获取家校元素信息 return self.get_by_local.get_element('school', 'teacher_notice_element') def get_create_teacher_notice_element(self): # 获取通知元素信息 return self.get_by_local.get_element('create_notice', 'teacher_notice_element') def get_notice_content_element(self): # 获取通知内容元素信息 return self.get_by_local.get_element('notice_content', 'teacher_notice_element') def get_send_to_element(self): # 获取选择联系人元素信息 return self.get_by_local.get_element('send_to', 'teacher_notice_element') def get_select_all_element(self): # 获取选择所有班级元素信息 return self.get_by_local.get_element('select_all', 'teacher_notice_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_screenshot(self, file_name): # 截屏 return self.screenshot.saveScreenshot(file_name) def get_right_button_element(self): # 获取确定按钮的元素信息 return self.get_by_local.get_element('right_button', 'teacher_notice_element') def get_back_button_element(self): # 获取确定按钮的元素信息 return self.get_by_local.get_element('back_button', 'teacher_notice_element') def get_notice_content(self): return self.get_by_local.get_element('content', 'teacher_notice_element') def get_notice_element_for_title(self, title): elements = self.get_by_local.get_element('notice_title', 'teacher_notice_element') teacher_notice_element = False for element in elements: if element.text == title: teacher_notice_element = element break return teacher_notice_element def get_notice_element_for_content(self, content): elements = self.get_by_local.get_element('content', 'teacher_notice_element') content_element = False for element in elements: if element.text == content: content_element = element break return content_element def get_homepage_element(self): # 获取选择联系人元素信息 return self.get_by_local.get_element('home_page')
def __init__(self, driver): self.get_by_local = GetByLocal(driver)
def login(): get_by_local = GetByLocal(driver) get_by_local.get_element("username").send_keys("15101658189") get_by_local.get_element("password").send_keys("1991") get_by_local.get_element("login_button").click()