How to use find_item method in localstack

Best Python code snippet using localstack_python

a09_housekeeper.py

Source:a09_housekeeper.py Github

copy

Full Screen

...32 return self.wait_ac(excel.activity_con('housekeeper_activity'))33 # 管家-我的管家页面,没有任务情况,提示:还没有创建管家任务,点击右上角“+”创建(实际有BUG)34 def no_housekeeper(self):35 self.mine_housekeeper() # 我的管家页面,删除所有管家任务36 return self.find_item('还没有创建管家任务,点击右上角“+”创建')37 # 管家-我的管家页面,点击右上角“+”,弹出创建管家任务编辑框38 def add_housekeeper(self):39 self.mine_housekeeper() # 我的管家页面,删除所有管家任务40 self.find_xpath(excel.xpath_con('housekeeper_add')).click() # 点击右上+按钮41 time.sleep(1)42 return self.find_item('创建管家任务')43 # 管家-我的管家页面,点击右上角“+”,弹出创建管家任务编辑框,点击右上“x”,编辑框消失44 def add_housekeeper_x(self):45 self.add_housekeeper() # 创建管家任务编辑框页面46 self.find_xpath(excel.xpath_con('create_housekeeeper_x')).click() # 点击右上X按钮47 time.sleep(1)48 return self.find_item('创建管家任务')49 # 管家-创建管家任务编辑框,点击定时任务,进入定时任务编辑页面,查找:当时间到达-------------------------------------------------50 def timing_editpage(self):51 self.add_housekeeper() # 创建管家任务编辑框页面52 self.find_xpath(excel.xpath_con('create_housekeeeper_timing')).click() # 点击定时任务53 time.sleep(1)54 return self.find_item('当时间到达')55 # 管家-定时任务编辑页面,点击名称,弹出名称弹窗56 def timing_name(self):57 self.timing_editpage() # 定时任务编辑页面58 self.find_xpath(excel.xpath_con('timing_name')).click() # 点击名称59 time.sleep(1)60 return self.is_element('xpath', excel.xpath_con('timing_name_search')) # 验证是否有名称弹窗61 # 管家-定时任务编辑-名称弹窗,输入名称呵呵123,点击确定,弹窗消失,名称显示为:呵呵12362 def timing_name_sure(self):63 self.timing_name() # 定时任务,名称弹窗64 self.find_xpath(excel.xpath_con('renameInput')).send_keys(u'呵呵123') # 名称输入框输入新名称 呵呵12365 time.sleep(1)66 self.find_xpath(excel.xpath_con('customScene_sure')).click() # 点击确定按钮67 time.sleep(1)68 return self.find_item('呵呵123')69 # 管家-定时任务编辑-名称弹窗,输入名称呵呵123,点击取消,弹窗消失,名称显示未变70 def timing_name_cancel(self):71 self.timing_name() # 定时任务,名称弹窗72 self.find_xpath(excel.xpath_con('renameInput')).send_keys(u'呵呵123') # 名称输入框输入新名称 呵呵12373 time.sleep(1)74 self.find_xpath(excel.xpath_con('addDelay_cancel')).click() # 点击取消按钮75 time.sleep(1)76 return self.find_item('呵呵123')77 # 管家-定时任务编辑页面,点击时间,进入定时编辑页面,查找Sun78 def timing_time(self):79 self.timing_editpage() # 定时任务编辑页面80 self.find_xpath(excel.xpath_con('timing_time')).click() # 点击事件81 time.sleep(1)82 return self.find_item('Sun')83 # 管家-定时编辑页面,点击保存,跳转定时任务编辑页面84 def timing_time_save(self):85 self.timing_time() # 定时任务,定时编辑页面86 self.find_xpath(excel.xpath_con('timeTask1_save')).click() # 点击保存按钮87 time.sleep(1)88 return self.find_item('当时间到达')89 # 管家-定时任务编辑页面,点击执行以下任务,进入添加任务页面,查找添加要执行的设备90 def timetask_page(self):91 self.timing_name_sure() # 定时任务编辑页面,已设置名称为呵呵12392 self.find_xpath(excel.xpath_con('timing_tasks')).click() # 点击执行以下任务93 time.sleep(1)94 return self.find_item('添加要执行的设备')95 # 管家-添加任务页面,点击添加要执行的设备,进入选择设备页面96 def timetask_device_page(self):97 self.timetask_page() # 添加任务页面98 self.find_xpath(excel.xpath_con('circumstances_needdodevice')).click() # 点击添加要执行的设备99 time.sleep(1)100 return self.find_item('选择设备')101 # 管家-选择设备页面,点击全部分区,下拉所以分区,查找元素全部分区102 def timetask_allzone(self):103 self.timetask_device_page() # 定时任务,选择设备页面104 self.find_xpath(excel.xpath_con('device_list_allAreas')).click() # 点击全部分区105 time.sleep(1)106 return self.is_element('xpath', excel.xpath_con('all_zone')) # 延时是否有全部分区元素107 # 管家-选择设备页面,点击全部类别,下拉所以类别,查找智能门锁108 def timetask_allclass(self):109 self.timetask_device_page() # 定时任务,选择设备页面110 self.find_xpath(excel.xpath_con('device_list_Categories')).click() # 点击全部分类111 time.sleep(1)112 return self.find_item('智能门锁')113 # 管家-选择设备页面,点击批量添加,进入批量添加页面,查找全选114 def timetask_alladd(self):115 self.timetask_device_page() # 定时任务,选择设备页面116 self.find_xpath(excel.xpath_con('batchAdd')).click() # 点击批量添加117 time.sleep(1)118 return self.find_item('全选')119 # 管家-添加任务页面,点击添加要执行的场景,进入选择场景页面120 def timetask_scene_page(self):121 self.timetask_page() # 添加任务页面122 self.find_xpath(excel.xpath_con('circumstances_needdoscene')).click() # 点击添加要执行的场景123 time.sleep(1)124 return self.find_item('选择场景')125 # 管家-添加任务页面,点击添加要执行的场景,进入选择场景页面,点击完成,toast提示:请选择一个场景,H5页面定位不了toast126 def timetask_scene_finish(self):127 self.timetask_scene_page() # 选择场景页面128 self.find_xpath(excel.xpath_con('finish_delay')).click() # 点击右上完成按钮129 return self.find_item('选择场景')130 # 管家-选择设备页面,点击墙面插座,进入设置设备状态页面131 def setting_device_status_page(self):132 self.timetask_device_page() # 选择设备页面133 self.find_xpath(excel.xpath_con('socket_5')).click()134 time.sleep(1)135 return self.find_item('设置设备状态')136 # 管家-设置设备状态页面,点击开,进入添加延时任务页面137 def delay_task_page(self):138 self.setting_device_status_page() # 设置设备状态页面139 self.find_xpath(excel.xpath_con('socket_open')).click() # 点击开140 time.sleep(1)141 return self.find_item('添加延时')142 # 管家-添加延时任务页面,点击打开添加延时按钮,弹出延时时间编辑框,查找秒143 def delay_task_tiemopen(self):144 self.delay_task_page() # 添加延时页面145 self.find_xpath(excel.xpath_con('delay_close')).click() # 点击打开添加延时开关按钮146 time.sleep(1)147 return self.find_item('秒')148 # 管家-添加延时任务页面,点击打开添加延时按钮,再次点击按钮,延时时间编辑框隐藏,查找不到秒149 def delay_task_timeclose(self):150 self.delay_task_tiemopen() # 添加延时页面,延时开关打开状态151 self.find_xpath(excel.xpath_con('delay_open')).click() # 点击关闭添加延时开关按钮152 time.sleep(1)153 return self.find_item('秒')154 # 管家-添加延时任务页面,点击完成按钮,跳转定时任务编辑页面155 def delay_task_finish(self):156 self.delay_task_page() # 添加延时页面157 self.find_xpath(excel.xpath_con('finish_delay')).click() # 点击完成按钮158 time.sleep(1)159 return self.find_item('墙面插座')160 # 管家-添加延时任务页面,左划任务,拉出删除按钮161 def task_leftswip(self):162 self.delay_task_finish() # 添加一个执行任务163 self.leftswip_delaytask(2000) # 左划执行任务164 return self.find_item('删除')165 # 管家-添加延时任务页面,左划任务,拉出删除按钮,点击删除按钮,任务删除166 def task_delete(self):167 self.task_leftswip() # 添加执行任务,左划拉出删除按钮168 time.sleep(1)169 self.find_xpath(excel.xpath_con('ediescene_delete')).click() # 点击删除按钮170 time.sleep(1)171 return self.find_item('墙面插座')172 # 管家-添加延时任务页面,点击完成按钮,跳转定时任务编辑页面,点击左上返回按钮,弹窗是否放弃编辑弹窗173 def giveup_edit(self):174 self.delay_task_finish() # 添加一个执行任务175 self.find_xpath(excel.xpath_con('back')).click() # 点击左上返回按钮176 time.sleep(1)177 return self.is_element('xpath', excel.xpath_con('giveup_edit')) # 验证是否有弹窗178 # 管家-添加延时任务页面,点击完成按钮,跳转定时任务编辑页面,点击左上返回按钮,弹窗是否放弃编辑弹窗,点击取消,弹窗消失179 def giveup_edit_cancel(self):180 self.delay_task_finish() # 添加一个执行任务181 self.find_xpath(excel.xpath_con('back')).click() # 点击左上返回按钮182 time.sleep(1)183 self.find_xpath(excel.xpath_con('giveup_edit_cancel')).click() # 点击取消按钮184 time.sleep(1)185 return self.is_element('xpath', excel.xpath_con('giveup_edit')) # 验证是否有弹窗186 # 管家-添加延时任务页面,点击完成按钮,跳转定时任务编辑页面,点击左上返回按钮,弹窗是否放弃编辑弹窗,点击确定,跳转我的管家页面,任务未保存187 def giveup_edit_sure(self):188 self.delay_task_finish() # 添加一个执行任务189 self.find_xpath(excel.xpath_con('back')).click() # 点击左上返回按钮190 time.sleep(1)191 self.find_xpath(excel.xpath_con('giveup_edit_sure')).click() # 点击确定按钮192 time.sleep(1)193 return self.find_item('呵呵123') # 跳转我的管家页面,管家任务没有保存194 # 管家-添加延时任务页面,点击完成按钮,跳转定时任务编辑页面,点击保存按钮,跳转我的页面,定时任务保存成功,查找呵呵123195 def timed_task(self):196 self.delay_task_finish() # 添加一个执行任务197 self.find_xpath(excel.xpath_con('timeTask1_save')).click() # 点击右上保存按钮198 time.sleep(2)199 return self.find_item('呵呵123')200 # 管家-定时任务编辑页面,点击保存按钮,弹窗提示:执行任务不能为空,请添加201 def timed_notask(self):202 self.timing_editpage() # 管家定时任务编辑页面203 self.find_xpath(excel.xpath_con('timeTask1_save')).click() # 点击右上保存按钮204 time.sleep(1)205 return self.is_element('xpath', excel.xpath_con('task_not_empty')) # 判断是否有弹窗这个元素206 # 管家-定时任务编辑页面,点击保存按钮,弹窗提示:执行任务不能为空,请添加,点击确定按钮,弹窗消失207 def timed_notask_sure(self):208 self.timed_notask() # 管家-定时任务-执行任务不能为空弹窗209 self.find_id(excel.id_con('dialog_btn_positive')).click() # 点击确定按钮210 time.sleep(1)211 return self.is_element('xpath', excel.xpath_con('task_not_empty')) # 判断是否有弹窗这个元素212 # 管家-新建一个定时任务,点击任务,进入定时任务编辑页面213 def click_timedtask(self):214 self.timed_task() # 创建一个定时任务215 self.find_xpath(excel.xpath_con('housekeeper_list')).click() # 点击第一个管家216 time.sleep(2)217 return self.find_item('当时间到达')218 # 管家-新建一个定时任务,左划任务,拉出编辑按钮219 def swip_timedtask(self):220 self.timed_task() # 创建一个定时任务221 self.leftswip_housekeeper(2000) # 左划第一个管家任务222 return self.find_item('编辑')223 # 管家-新建一个定时任务,左划任务,拉出编辑按钮,点击编辑按钮,进入定时任务编辑页面224 def swip_timedtask_edit(self):225 self.swip_timedtask() # 左划管家任务,拉出编辑按钮226 time.sleep(1)227 self.find_xpath(excel.xpath_con('housekeeper_edit')).click() # 点击编辑按钮228 time.sleep(2)229 return self.find_item('当时间到达')230 # 管家-新建一个定时任务,左划任务,拉出删除按钮231 def swip_timedtask_delete(self):232 self.timed_task() # 创建一个定时任务233 self.leftswip_housekeeper(2000) # 左划第一个管家任务234 return self.find_item('删除')235 # 管家-新建一个定时任务,左划任务,拉出删除按钮,点击删除按钮,任务被删除236 def swip_timedtask_deletesure(self):237 self.swip_timedtask_delete() # 左划任务,拉出删除按钮238 time.sleep(1)239 self.find_xpath(excel.xpath_con('housekeeper_delete')).click() # 点击删除按钮240 time.sleep(2)241 return self.find_item('呵呵123')242 # 管家-创建管家任务编辑框,点击情景任务,进入情景任务编辑页面-----------------------------------------------------------------243 def scenetask_page(self):244 self.add_housekeeper() # 创建管家任务编辑框页面245 self.find_xpath(excel.xpath_con('create_housekeeeper_scene')).click() # 点击情景任务246 time.sleep(1)247 return self.find_item('满足任一条件时')248 # 管家-情景任务编辑页面,点击名称,弹出名称弹窗249 def scenetask_name(self):250 self.scenetask_page() # 情景任务编辑页面251 self.find_xpath(excel.xpath_con('timing_name')).click() # 点击名称252 time.sleep(1)253 return self.is_element('xpath', excel.xpath_con('timing_name_search')) # 验证是否有名称弹窗254 # 管家-情景任务编辑-名称弹窗,输入名称哈哈123,点击确定,弹窗消失,名称显示为:哈哈123255 def scenetask_namesure(self):256 self.scenetask_name() # 情景任务编辑页面,名称弹窗257 self.find_xpath(excel.xpath_con('renameInput')).send_keys(u'哈哈123') # 输入名称哈哈123258 time.sleep(1)259 self.find_xpath(excel.xpath_con('giveup_edit_sure')).click() # 点击确定按钮260 time.sleep(1)261 return self.find_item('哈哈123')262 # 管家-情景任务编辑-名称弹窗,输入名称哈哈123,点击取消,弹窗消失,名称显示未变263 def scenetask_namecancel(self):264 self.scenetask_name() # 情景任务编辑页面,名称弹窗265 self.find_xpath(excel.xpath_con('renameInput')).send_keys(u'哈哈123') # 输入名称哈哈123266 time.sleep(1)267 self.find_xpath(excel.xpath_con('giveup_edit_cancel')).click() # 点击取消按钮268 time.sleep(1)269 return self.find_item('哈哈123')270 # 管家-情景任务编辑,点击满足任一条件时,进入选择设备页面271 def condition_page(self):272 self.scenetask_page() # 情景任务编辑页面273 self.find_xpath(excel.xpath_con('scenetask_condition')).click() # 点击满足任一条件时274 time.sleep(1)275 return self.find_item('全部分区')276 # 管家-条件任务-选择设备页面,点击全部分区,下拉所以分区,查找元素全部分区277 def conditionpage_zone(self):278 self.condition_page() # 情景任务-条件任务,选择设备页面279 self.find_xpath(excel.xpath_con('device_list_allAreas')).click() # 点击全部分区280 time.sleep(1)281 return self.is_element('xpath', excel.xpath_con('all_zone')) # 验证是否存在元素全部分区282 # 管家-条件任务-选择设备页面,点击全部类别,下拉所以类别,查找智能门锁283 def conditionpage_category(self):284 self.condition_page() # 情景任务-条件任务,选择设备页面285 self.find_xpath(excel.xpath_con('device_list_Categories')).click() # 点击全部分类286 time.sleep(1)287 return self.find_item('智能门锁')288 # 管家-条件任务-选择设备页面,点击门窗磁探测器,进入设置设备状态页面289 def condition_mannetic_page(self):290 self.condition_page() # 情景任务-条件任务,选择设备页面291 self.find_xpath(excel.xpath_con('magnetic_4')).click() # 点击门窗磁探测器292 time.sleep(1)293 return self.find_item('设置设备状态')294 # 管家-条件任务-设置设备状态页面,点击被打开,跳转情景任务编辑页面,查找门窗磁探测器295 def condition_magnetic_open(self):296 self.condition_mannetic_page() # 管家-条件任务-门磁设置设备状态页面297 self.find_xpath(excel.xpath_con('magnetic_open')).click() # 点击被打开298 time.sleep(1)299 return self.find_item('门窗磁探测器')300 # 管家-条件任务-设置设备状态页面,点击被关闭,跳转情景任务编辑页面,查找门窗磁探测器301 def condition_magnetic_close(self):302 self.condition_mannetic_page() # 管家-条件任务-门磁设置设备状态页面303 self.find_xpath(excel.xpath_con('magnetic_close')).click() # 点击被关闭304 time.sleep(1)305 return self.find_item('门窗磁探测器')306 # 管家-条件任务成功-情景任务编辑页面,左划任务,拉出删除按钮,查找删除307 def condition_swip(self):308 self.condition_magnetic_open() # 创建一个条件任务309 self.leftswip_condition(2000) # 左划条件任务310 time.sleep(1)311 return self.find_item('删除')312 # 管家-条件任务成功-情景任务编辑页面,左划任务,拉出删除按钮,查找删除,点击删除,任务删除成功,查找不到门窗磁探测器313 def condition_swip_delete(self):314 self.condition_swip() # 左划条件任务拉出删除按钮315 self.find_xpath(excel.xpath_con('ediescene_delete')).click() # 点击删除按钮316 time.sleep(1)317 return self.find_item('门窗磁探测器')318 # 管家-情景任务编辑,点击执行以下任务,情景任务页面,查找添加要执行的设备319 def implement_page(self):320 self.scenetask_page() # 情景任务编辑页面321 self.find_xpath(excel.xpath_con('scenetask_task')).click() # 点击执行以下任务322 time.sleep(1)323 return self.find_item('添加要执行的设备')324 # 管家-执行任务-情景任务页面,点击添加要执行的设备,进入选择设备页面325 def implement_devicepage(self):326 self.implement_page() # 执行任务-情景任务页面327 self.find_xpath(excel.xpath_con('circumstances_needdodevice')).click() # 点击添加要执行的设备328 time.sleep(1)329 return self.find_item('选择设备')330 # 管家-执行任务-情景任务页面,点击添加要执行的场景,进入选择场景页面331 def implement_scenepage(self):332 self.implement_page() # 执行任务-情景任务页面333 self.find_xpath(excel.xpath_con('circumstances_needdoscene')).click() # 点击添加要执行的场景334 time.sleep(1)335 return self.find_item('选择场景')336 # 管家-执行任务-情景任务页面,点击添加要执行的场景,进入选择场景页面,点击完成,toast提示:请选择一个场景337 def implement_scenepage_finish(self):338 self.implement_scenepage() # 情景任务-选择场景,场景选择页面339 self.find_xpath(excel.xpath_con('finishState')).click() # 点击完成按钮340 time.sleep(1)341 return self.find_item('选择场景')342 # 管家-执行任务-选择设备页面,点击全部分区,下拉所以分区,查找元素全部分区343 def implement_device_zone(self):344 self.implement_devicepage() # 执行任务-选择设备页面345 self.find_xpath(excel.xpath_con('device_list_allAreas')).click() # 点击全部分区346 time.sleep(1)347 return self.is_element('xpath', excel.xpath_con('all_zone')) # 验证是否存在元素全部分区348 # 管家-执行任务-选择设备页面,点击全部类别,下拉所以类别,查找智能门锁349 def implement_device_categroy(self):350 self.implement_devicepage() # 执行任务-选择设备页面351 self.find_xpath(excel.xpath_con('device_list_Categories')).click() # 点击全部分类352 time.sleep(1)353 return self.find_item('智能门锁')354 # 管家-执行任务-选择设备页面,点击批量添加,进入批量添加页面,查找全选355 def implement_device_add(self):356 self.implement_devicepage() # 执行任务-选择设备页面357 self.find_xpath(excel.xpath_con('batchAdd')).click() # 点击批量添加358 time.sleep(1)359 return self.find_item('全选')360 # 管家-执行任务-选择设备页面,点击墙面插座,进入设置设备状态页面361 def implement_socket_setting(self):362 self.implement_devicepage() # 执行任务-选择设备页面363 self.find_xpath(excel.xpath_con('socket_5')).click() # 点击墙面插座364 time.sleep(1)365 return self.find_item('设置设备状态')366 # 管家-执行任务-设置设备状态页面,点击开,跳转添加延时页面367 def implement_socket_open(self):368 self.implement_socket_setting() # 情景任务-执行任务,墙面插座设置设备状态页面369 self.find_xpath(excel.xpath_con('socket_open')).click() # 点击墙面插座开370 time.sleep(1)371 return self.find_item('添加延时')372 # 管家-执行任务-设置设备状态页面,点击关,跳转添加延时页面373 def implement_socket_close(self):374 self.implement_socket_setting() # 情景任务-执行任务,墙面插座设置设备状态页面375 self.find_xpath(excel.xpath_con('socket_close')).click() # 点击墙面插座关376 time.sleep(1)377 return self.find_item('添加延时')378 # 管家-执行任务-添加延时页面,点击添加延时开关按钮,弹出延时时间编辑框,查找秒379 def implement_time_open(self):380 self.implement_socket_open() # 情景任务-执行任务,添加延时页面381 self.find_xpath(excel.xpath_con('delay_close')).click() # 点击打开延时开关382 time.sleep(1)383 return self.find_item('秒')384 # 管家-执行任务-添加延时页面,点击添加延时开关按钮,弹出延时时间编辑框,再次点击开关按钮,延时时间编辑框隐藏,查找不到秒385 def implement_time_close(self):386 self.implement_time_open() # 打开延时按钮387 self.find_xpath(excel.xpath_con('delay_open')).click() # 点击关闭延时开关388 time.sleep(1)389 return self.find_item('秒')390 # 管家-执行任务-添加延时页面,点击完成按钮,跳转情景任务编辑页面,查找墙面插座391 def implement_finish(self):392 self.implement_socket_open() # 情景任务-执行任务,添加延时页面393 self.find_xpath(excel.xpath_con('finish_delay')).click() # 点击完成按钮394 time.sleep(1)395 return self.find_item('墙面插座')396 # 管家-已设置任务,点击执行任务,进入设置设备状态页面397 def implement_click_firsttask(self):398 self.implement_finish() # 新建一个执行任务399 self.find_xpath(excel.xpath_con('implement_1')).click() # 点击第一个执行任务400 time.sleep(1)401 return self.find_item('设置设备状态')402 # 管家-已设置任务,左划执行任务,拉出删除按钮,查找删除403 def implement_swip(self):404 self.implement_finish() # 新建一个执行任务405 self.leftswip_implement(2000) # 左划任务406 time.sleep(1)407 return self.find_item('删除')408 # 管家-已设置任务,左划执行任务,拉出删除按钮,点击删除按钮,任务被删除,查找墙面插座409 def implement_swip_delete(self):410 self.implement_swip() # 左划任务,拉出删除按钮411 self.find_xpath(excel.xpath_con('ediescene_delete')).click() # 点击删除按钮412 time.sleep(1)413 return self.find_item('墙面插座')414 # 管家-情景任务编辑页面,点击保存按钮,弹窗提示:执行条件或者执行任务不能为空,请添加415 def condition_implement_allnone(self):416 self.scenetask_page() # 情景任务编辑页面417 self.find_xpath(excel.xpath_con('circumstances_save')).click() # 点击保存按钮418 time.sleep(1)419 return self.is_element('xpath', excel.xpath_con('task_not_empty')) # 验证弹窗元素是否存在420 # 管家-情景任务编辑页面,点击保存按钮,弹窗提示:执行条件或者执行任务不能为空,请添加,点击确定按钮,弹窗消失421 def condition_implement_allnone_sure(self):422 self.condition_implement_allnone() # 执行条件或者执行任务不能为空弹窗423 self.find_id(excel.id_con('dialog_btn_positive')).click() # 点击确定按钮424 time.sleep(1)425 return self.is_element('xpath', excel.xpath_con('task_not_empty')) # 验证弹窗元素是否存在426 # 管家-情景任务编辑页面-已设置执行条件,点击保存按钮,弹窗提示:执行条件或者执行任务不能为空,请添加427 def implement_none(self):428 self.condition_magnetic_open() # 创建一个条件任务429 self.find_xpath(excel.xpath_con('circumstances_save')).click() # 点击保存按钮430 time.sleep(1)431 return self.is_element('xpath', excel.xpath_con('task_not_empty')) # 验证弹窗元素是否存在432 # 管家-情景任务编辑页面-已设置执行任务,点击保存按钮,弹窗提示:执行条件或者执行任务不能为空,请添加433 def condition_none(self):434 self.implement_finish() # 新建一个执行任务435 self.find_xpath(excel.xpath_con('circumstances_save')).click() # 点击保存按钮436 time.sleep(1)437 return self.is_element('xpath', excel.xpath_con('task_not_empty')) # 验证弹窗元素是否存在438 # 管家-已设置名称-已设置执行条件-已设置执行任务,点击保存,跳转我的管家页面,查找第一个管家任务元素439 def scenetask_creat(self):440 self.scenetask_namesure() # 设置情景任务名称441 self.find_xpath(excel.xpath_con('scenetask_condition')).click() # 点击满足任一条件时442 time.sleep(1)443 self.find_xpath(excel.xpath_con('magnetic_4')).click() # 点击门窗磁探测器444 time.sleep(1)445 self.find_xpath(excel.xpath_con('magnetic_open')).click() # 点击被打开446 time.sleep(1)447 self.find_xpath(excel.xpath_con('scenetask_task')).click() # 点击执行以下任务448 time.sleep(1)449 self.find_xpath(excel.xpath_con('circumstances_needdodevice')).click() # 点击添加要执行的设备450 time.sleep(1)451 self.find_xpath(excel.xpath_con('socket_5')).click() # 点击墙面插座452 time.sleep(1)453 self.find_xpath(excel.xpath_con('socket_open')).click() # 点击墙面插座开454 time.sleep(1)455 self.find_xpath(excel.xpath_con('finish_delay')).click() # 点击完成按钮456 time.sleep(1)457 self.find_xpath(excel.xpath_con('circumstances_save')).click() # 点击保存按钮458 time.sleep(1)459 return self.is_element('xpath', excel.xpath_con('housekeeper_list')) # 验证元素是否存在460 # 管家-已设置执行任务,点击左上返回按钮,弹窗提示:是否放弃编辑461 def giveup_edit2(self):462 self.implement_finish() # 新建一个执行任务463 self.find_xpath(excel.xpath_con('back')).click() # 点击左上返回按钮464 time.sleep(1)465 return self.is_element('xpath', excel.xpath_con('giveup_edit')) # 验证是否有弹窗466 # 管家-已设置执行任务,点击左上返回按钮,弹窗提示:是否放弃编辑,点击取消,弹窗消失467 def giveup_edit2_cancel(self):468 self.implement_finish() # 新建一个执行任务469 self.find_xpath(excel.xpath_con('back')).click() # 点击左上返回按钮470 time.sleep(1)471 self.find_xpath(excel.xpath_con('giveup_edit_cancel')).click() # 点击取消按钮472 time.sleep(1)473 return self.is_element('xpath', excel.xpath_con('giveup_edit')) # 验证是否有弹窗474 # 管家-已设置执行任务,点击左上返回按钮,弹窗提示:是否放弃编辑,点击确定,跳转我的管家页面,任务未保存475 def giveup_edit2_sure(self):476 self.implement_finish() # 新建一个执行任务477 self.find_xpath(excel.xpath_con('back')).click() # 点击左上返回按钮478 time.sleep(1)479 self.find_xpath(excel.xpath_con('giveup_edit_sure')).click() # 点击确定按钮480 time.sleep(1)481 return self.is_element('xpath', excel.xpath_con('housekeeper_list')) # 验证我的管家页面管家任务元素是否存在482 # 管家-情景任务编辑页面,点击生效条件,进入生效条件页面,查找:生效时间条件483 def precondition_page(self):484 self.scenetask_page() # 情景任务编辑页面485 self.find_xpath(excel.xpath_con('conditionAdd')).click() # 点击生效条件486 time.sleep(1)487 return self.find_item('生效时间条件')488 # 管家-生效条件页面,点击生效时间条件,进入生效时段页面489 def precondition_time(self):490 self.precondition_page() # 生效条件页面491 self.find_xpath(excel.xpath_con('time_factor')).click() # 点击生效时间条件492 time.sleep(1)493 return self.find_item('生效时段')494 # 管家-生效条件页面,点击生效设备条件,进入选择设备页面495 def precondition_device(self):496 self.precondition_page() # 生效条件页面497 self.find_xpath(excel.xpath_con('device_factor')).click() # 点击生效设备条件498 time.sleep(1)499 return self.find_item('选择设备')500 # 管家-生效条件页面,点击生效场景条件,进入选择场景页面501 def precondition_scene(self):502 self.precondition_page() # 生效条件页面503 self.find_xpath(excel.xpath_con('Scenes_facto')).click() # 点击生效场景条件504 time.sleep(1)505 return self.find_item('选择场景')506 # 管家-新建一个情景任务,点击情景任务,进入情景任务编辑页面507 def click_scenetask(self):508 self.scenetask_creat() # 创建一个情景任务509 self.find_xpath(excel.xpath_con('housekeeper_list')).click() # 点击第一个管家任务510 time.sleep(1)511 return self.find_item('满足任一条件时')512 # 管家-新建一个情景任务,左划任务,拉出编辑按钮513 def scenetask_swip_edit(self):514 self.scenetask_creat() # 创建一个情景任务515 time.sleep(1)516 self.leftswip_housekeeper(2000) # 左划任务517 time.sleep(1)518 return self.find_item('编辑')519 # 管家-新建一个情景任务,左划任务,拉出编辑按钮,点击编辑按钮,进入定时任务编辑页面520 def scenetask_click_edit(self):521 self.scenetask_swip_edit() # 拉出编辑按钮522 self.find_xpath(excel.xpath_con('housekeeper_edit')).click() # 点击编辑按钮523 time.sleep(1)524 return self.find_item('满足任一条件时')525 # 管家-新建一个情景任务,左划任务,拉出删除按钮526 def scenetask_swip_delete(self):527 self.scenetask_creat() # 创建一个情景任务528 time.sleep(1)529 self.leftswip_housekeeper(2000) # 左划任务530 time.sleep(2)531 return self.find_item('删除')532 # 管家-新建一个情景任务,左划任务,拉出删除按钮,点击删除按钮,任务被删除533 def scenetask_click_delete(self):534 self.scenetask_swip_delete() # 拉出删除按钮535 self.find_xpath(excel.xpath_con('housekeeper_delete')).click() # 点击删除按钮536 time.sleep(1)...

Full Screen

Full Screen

a08_wall_socket.py

Source:a08_wall_socket.py Github

copy

Full Screen

...12 self.find_xpath(excel.xpath_con('device')).click() # 点击设备13 time.sleep(1)14 self.find_text('墙面插座').click() # 点击墙面插座15 self.wait_ac(excel.activity_con('device_detail_activity'))16 if self.find_item(u'已开启'):17 self.find_xpath(excel.xpath_con('socket_button')).click()18 time.sleep(2)19 # 前置条件:墙面插座详情页,打开状态20 def opened_state(self):21 self.find_xpath(excel.xpath_con('device')).click() # 点击设备22 time.sleep(1)23 self.find_text('墙面插座').click() # 点击墙面插座24 self.wait_ac(excel.activity_con('device_detail_activity'))25 if self.find_item(u'已关闭'):26 self.find_xpath(excel.xpath_con('socket_button')).click()27 time.sleep(2)28 # 1、设备,进入墙面插座详情页29 def details_page(self):30 self.old_gateway_mine() # 账号登陆,我的31 self.find_xpath(excel.xpath_con('device')).click() # 点击设备32 time.sleep(1)33 self.find_text('墙面插座').click() # 点击墙面插座34 self.wait_ac(excel.activity_con('device_detail_activity'))35 if self.find_item(u'已开启'):36 return True37 elif self.find_item(u'已关闭'):38 return True39 else:40 return False41 # 2、设备-插座详情页,点击返回按钮,返回设备列表页面42 def details_page_back(self):43 self.details_page() # 进入设备详情页44 self.find_xpath(excel.xpath_con('back')).click() # 点击返回按钮45 time.sleep(1)46 return self.find_item('全部类别') # 确认返回设备列表页面,找全部分区也可47 # 3、设备-插座详情页,关闭状态,点击开关按钮,打开插座48 def open_socket(self):49 self.old_gateway_mine() # 账号登陆,我的50 self.closed_state() # 进入设备详情页,关闭状态51 self.find_xpath(excel.xpath_con('socket_button')).click() # 点击开关按钮52 time.sleep(2)53 return self.find_item(u'已开启')54 # 4、设备-插座详情页,打开状态,点击开关按钮,关闭插座55 def close_socket(self):56 self.old_gateway_mine() # 账号登陆,我的57 self.opened_state() # 进入设备详情页,打开状态58 self.find_xpath(excel.xpath_con('socket_button')).click() # 点击开关按钮59 time.sleep(2)60 return self.find_item(u'已关闭')61 # 5、设备-插座详情页,点击更多按钮,进入更多页面62 def more_pages(self):63 self.details_page() # 进入设备详情页64 time.sleep(1)65 self.find_xpath(excel.xpath_con('more')).click() # 点击右上更多按钮66 time.sleep(1)67 return self.find_item('删除设备')68 # 设备-插座详情页-更多,点击返回按钮,进入设备详情页69 def more_pages_back(self):70 self.more_pages() # 进入更多页面71 time.sleep(1)72 self.find_id(excel.id_con('img_left')).click() # 点击左上返回按钮73 time.sleep(1)74 return self.find_item('已关闭')75 # 设备-插座详情页-更多,重命名哈哈123-确定,toast:修改设备名称成功76 def rename(self):77 self.more_pages() # 进入更多页面78 time.sleep(1)79 self.find_id(excel.id_con('item_device_more_rename')).click() # 点击重命名80 time.sleep(1)81 self.find_id(excel.id_con('et_user_info')).send_keys(u'哈哈') # 输入新名称82 self.find_id(excel.id_con('dialog_btn_positive')).click() # 点击确定按钮83 return self.find_toast('修改设备名称成功')84 # 设备-插座详情页-更多,重命名哈哈123-确定,返回设备列表,可以查找到新设备名称85 def rename_back(self):86 self.rename() # 修改名称87 time.sleep(1)88 self.driver.back() # 点击返回89 time.sleep(1)90 self.driver.back() # 点击返回91 time.sleep(1)92 for i in range(3): # 设备多的情况需要调整。。。。。。93 self.swipeDown(1000)94 return self.find_item('哈哈')95 # 设备-插座详情页-更多,重命名哈哈123-取消96 def rename_cancel(self):97 self.more_pages() # 进入更多页面98 time.sleep(1)99 self.find_id(excel.id_con('item_device_more_rename')).click() # 点击重命名100 time.sleep(1)101 self.find_id(excel.id_con('et_user_info')).send_keys(u'哈哈') # 输入新名称102 self.find_id(excel.id_con('dialog_btn_negative')).click() # 点击取消按钮103 return self.find_item('墙面插座')104 # 设备-插座详情页-更多,命名已有的设备名称,toast提示:设备名称重复!加zzz最后运行!105 def zzz_rename_repeat(self):106 self.more_pages() # 进入更多页面107 time.sleep(1)108 self.find_id(excel.id_con('item_device_more_rename')).click() # 点击重命名109 time.sleep(1)110 self.find_id(excel.id_con('et_user_info')).send_keys(u'名称重复') # 输入名称重复111 self.find_id(excel.id_con('dialog_btn_positive')).click() # 点击确定按钮112 return self.find_toast('设备名称重复!')113 # 设备-插座详情页-更多,重命名-不输入名称,确定按钮点击无效,重命名弹窗还在,查找:请输入设备名114 def rename_none(self):115 self.more_pages() # 进入更多页面116 time.sleep(1)117 self.find_id(excel.id_con('item_device_more_rename')).click() # 点击重命名118 time.sleep(1)119 self.find_id(excel.id_con('et_user_info')).send_keys('') # 不输入名称120 self.find_id(excel.id_con('dialog_btn_positive')).click() # 点击确定按钮121 return self.find_item('请输入设备名')122 # 设备-插座详情页-更多,点击分区,进入分区页面123 def zone_pages(self):124 self.more_pages() # 进入更多页面125 time.sleep(1)126 self.find_id(excel.id_con('item_device_more_area')).click() # 点击分区127 time.sleep(1)128 return self.find_item('未分区')129 # 设备-插座详情页-更多-分区,点击返回按钮,返回更多页面130 def zone_pages_back(self):131 self.zone_pages() # 进入分区页面132 self.find_id(excel.id_con('img_left')).click() # 点击左上返回按钮133 time.sleep(1)134 return self.find_item('更多')135 # 设备-插座详情页-更多,前置条件至少有一个分区,点击分区,返回更多页面,toast:修改设备区域成功136 def modify_zone(self):137 self.least_one_zone() # 前置条件,至少一个分区,设备列表页面138 time.sleep(1)139 self.click_device(u'墙面插座') # 点击墙面插座140 self.wait_ac(excel.activity_con('device_detail_activity'))141 self.find_xpath(excel.xpath_con('more')).click() # 点击右上更多按钮142 time.sleep(1)143 self.find_id(excel.id_con('item_device_more_area')).click() # 点击分区144 time.sleep(1)145 self.find_xpath(excel.xpath_con('more_first_zone')).click() # 点击第一个分区146 return self.find_toast('修改设备区域成功')147 # 设备-插座详情页-更多,点击未分区,返回更多页面,未分区可以查找到148 def non_zone(self):149 self.zone_pages()150 self.find_xpath(excel.xpath_con('no_zone')).click() # 点击未分区151 time.sleep(2)152 return self.find_item('未分区')153 # 设备-插座详情页-更多-分区,点击右上管理分区,进入分区管理页面154 def zoning_pages(self):155 self.zone_pages()156 self.find_id(excel.id_con('btn_right')).click() # 点击右上管理分区按钮157 time.sleep(1)158 return self.find_item('分区管理')159 # 设备-插座详情页-更多-分区-分区管理,点击返回按钮,返回分区页面160 def zoning_pages_back(self):161 self.zoning_pages() # 进入分区管理页面162 self.find_id(excel.id_con('img_left')).click() # 点击返回按钮163 return self.find_item('未分区')164 # 设备-插座详情页-更多,点击设备信息,进入设备信息页面,产品名称165 def device_information(self):166 self.more_pages() # 进入更多页面167 time.sleep(1)168 self.find_id(excel.id_con('item_device_more_info')).click() # 点击设备信息169 time.sleep(1)170 return self.find_item('产品名称')171 # 设备-插座详情页-更多-设备信息,点击返回按钮,返回更多页面172 def device_information_back(self):173 self.more_pages() # 进入更多页面174 time.sleep(1)175 self.find_id(excel.id_con('item_device_more_info')).click() # 点击设备信息176 time.sleep(1)177 self.find_id(excel.id_con('img_left')).click() # 点击返回178 time.sleep(1)179 return self.find_item('更多')180 # 设备-插座详情页-更多,点击找设备,弹窗设备指示灯将闪烁10秒181 def find_device(self):182 self.more_pages() # 进入更多页面183 time.sleep(1)184 self.find_id(excel.id_con('item_device_more_find')).click() # 点击找设备185 time.sleep(1)186 return self.find_item('设备指示灯将闪烁10秒')187 # 设备-插座详情页-更多-找设备弹窗,点击已找到,弹窗消失188 def find_device_found(self):189 self.find_device() # 找设备弹窗190 self.find_id(excel.id_con('dialog_btn_negative')).click() # 点击已找到191 time.sleep(1)192 return self.find_item('设备指示灯将闪烁10秒')193 # 设备-插座详情页-更多-找设备弹窗,点击再闪一次,弹窗还在194 def find_device_find(self):195 self.find_device() # 找设备弹窗196 self.find_id(excel.id_con('dialog_btn_positive')).click() # 点击再找一次197 time.sleep(1)198 return self.find_item('设备指示灯将闪烁10秒')199 # 设备-插座详情页-更多,点击日志,日志消息页面200 def log_message_pages(self):201 self.more_pages() # 进入更多页面202 time.sleep(1)203 self.find_id(excel.id_con('item_device_more_root')).click() # 点击日志204 time.sleep(2)205 return self.wait_ac(excel.activity_con('message_log_activity'))206 # 设备-插座详情页-更多-日志消息,点击返回,返回更多页面207 def log_message_pages_back(self):208 self.log_message_pages() # 日志消息页面209 self.find_id(excel.id_con('img_left')).click() # 点击返回按钮210 time.sleep(1)211 return self.find_item('更多')212 # 设备-插座详情页-更多-日志消息,点击按日期查找,弹窗查找编辑框213 def log_search_by_time(self):214 self.log_message_pages() # 日志消息页面215 self.find_id(excel.id_con('log_image_arrow')).click() # 点击按日期查找216 time.sleep(3)217 # return self.is_element('xpath', excel.xpath_con('by_date_edit')) # 判断元素是否存在218 # 设备-插座详情页-更多-日志消息,点击清空日志按钮,弹窗确定清空该设备消息记录219 def emptying_record(self):220 self.log_message_pages() # 日志消息页面221 self.find_id(excel.id_con('btn_right')).click() # 点击清空记录222 time.sleep(1)223 return self.find_item('确定清空该设备消息记录')224 # 设备-插座详情页-更多-日志消息-清空弹窗,点击取消,弹窗消失225 def emptying_record_cancel(self):226 self.log_message_pages() # 日志消息页面227 self.find_id(excel.id_con('btn_right')).click() # 点击清空记录228 time.sleep(1)229 self.find_id(excel.id_con('dialog_btn_negative')).click() # 点击取消按钮230 time.sleep(1)231 return self.find_item('确定清空该设备消息记录')232 # 设备-插座详情页-更多-日志消息-清空弹窗,点击确定,弹窗消失,返回更多页面233 def emptying_record_sure(self):234 self.log_message_pages() # 日志消息页面235 self.find_id(excel.id_con('btn_right')).click() # 点击清空记录236 time.sleep(1)237 self.find_id(excel.id_con('dialog_btn_positive')).click() # 点击确定按钮238 time.sleep(2)239 return self.find_item('更多')240 # 设备-插座详情页-更多-日志消息-清空弹窗,清空消息,再返回日志页面,提示:没有日志消息241 def log_emptying(self):242 self.emptying_record_sure() # 日志消息清空完成,更多页面243 self.find_id(excel.id_con('item_device_more_root')).click() # 点击日志244 time.sleep(2)245 return self.find_item('没有日志消息')246 # 设备-插座详情页-更多-日志消息-清空弹窗,清空消息,再返返回设备详情页,点击两次开关按钮,再进日志页面,查到已打开247 def log_open(self):248 self.emptying_record_sure() # 清空日志消息,更多页面249 self.driver.back()250 time.sleep(1)251 self.find_xpath(excel.xpath_con('socket_button')).click() # 点击开关按钮252 time.sleep(2)253 self.find_xpath(excel.xpath_con('socket_button')).click() # 点击开关按钮254 time.sleep(2)255 self.find_xpath(excel.xpath_con('more')).click() # 点击右上更多按钮256 time.sleep(1)257 self.find_id(excel.id_con('item_device_more_root')).click() # 点击日志258 time.sleep(2)259 return self.find_item('已打开')260 # 设备-插座详情页-更多-日志消息-清空弹窗,清空消息,再返返回设备详情页,点击两次开关按钮,再进日志页面,查到已关闭261 def log_close(self):262 self.emptying_record_sure() # 清空日志消息,更多页面263 self.driver.back()264 time.sleep(1)265 self.find_xpath(excel.xpath_con('socket_button')).click() # 点击开关按钮266 time.sleep(2)267 self.find_xpath(excel.xpath_con('socket_button')).click() # 点击开关按钮268 time.sleep(2)269 self.find_xpath(excel.xpath_con('more')).click() # 点击右上更多按钮270 time.sleep(1)271 self.find_id(excel.id_con('item_device_more_root')).click() # 点击日志272 time.sleep(2)273 return self.find_item('已关闭')274 # 设备-插座详情页-更多,点击删除设备,弹窗确定删除设备吗?275 def delete_device(self):276 self.more_pages() # 进入更多页面277 time.sleep(1)278 self.find_id(excel.id_con('item_device_more_delete')).click() # 点击删除设备按钮279 time.sleep(1)280 return self.find_item('确定删除设备吗?')281 # 设备-插座详情页-更多-删除设备弹窗,点击取消按钮,弹窗消失(删除设备用例省略)282 def delete_device_cancel(self):283 self.delete_device() # 删除设备284 self.find_id(excel.id_con('dialog_btn_negative')).click() # 点击取消按钮285 time.sleep(1)286 return self.find_item('确定删除设备吗?')287 # 场景,设置场景打开插座 --------------------------------------------------------------288 def scene_open_socket(self):289 self.scene_page() # 全部场景页面,删除已有场景290 time.sleep(1)291 self.find_id(excel.id_con('all_scene_image_add')).click() # 点击创建场景292 self.wait_ac(excel.activity_con('add_scence_activity')) # 场景名称与图标页面293 time.sleep(1)294 self.find_xpath(excel.xpath_con('go_out')).click() # 点击离家场景图标295 time.sleep(1)296 self.find_xpath(excel.xpath_con('customScene_input_name')).send_keys(u'呵呵123')297 time.sleep(1)298 self.find_xpath(excel.xpath_con('customScene_sure')).click() # 点击确定按钮299 time.sleep(2)300 self.find_xpath(excel.xpath_con('editScene_add_equipment')).click() # 点击添加任务按钮301 time.sleep(1)302 self.switch_h5() # 切换到H5页面303 self.find_xpath(excel.xpath_con('socket_scene')).click() # 点击墙面插座304 time.sleep(1)305 self.switch_app() # 切回原生306 self.find_xpath(excel.xpath_con('socket_open')).click() # 点击开307 time.sleep(1)308 self.find_xpath(excel.xpath_con('finish_delay')).click() # 点击右上完成按钮309 time.sleep(1)310 self.find_xpath(excel.xpath_con('finishScene')).click() # 点击保存按钮311 self.wait_ac(excel.activity_con('all_scence_activity')) # 全部场景页面312 return self.find_item('呵呵123')313 # 关闭插座,点击打开插座场景314 def click_scene_open_socket(self):315 self.scene_open_socket() # 设置场景,打开插座316 self.driver.back() # 返回首页317 self.find_xpath(excel.xpath_con('device')).click() # 点击设备318 time.sleep(1)319 self.click_device(u'墙面插座') # 点击墙面插座320 self.wait_ac(excel.activity_con('device_detail_activity'))321 time.sleep(2)322 if self.find_item(u'已开启'):323 self.find_xpath(excel.xpath_con('socket_button')).click() # 关闭插座324 time.sleep(1)325 self.driver.back()326 self.find_xpath(excel.xpath_con('home')).click() # 点击首页327 time.sleep(1)328 self.driver.find_element_by_android_uiautomator('text(\"呵呵123\")').click() # 点击场景-呵呵123329 self.find_xpath(excel.xpath_con('device')).click() # 点击设备330 time.sleep(1)331 self.click_device(u'墙面插座') # 点击墙面插座332 self.wait_ac(excel.activity_con('device_detail_activity'))333 return self.find_item('已开启')334 # 场景,设置场景关闭插座335 def scene_close_socket(self):336 self.scene_page() # 全部场景页面,删除已有场景337 time.sleep(1)338 self.find_id(excel.id_con('all_scene_image_add')).click() # 点击创建场景339 self.wait_ac(excel.activity_con('add_scence_activity')) # 场景名称与图标页面340 time.sleep(1)341 self.find_xpath(excel.xpath_con('go_out')).click() # 点击离家场景图标342 time.sleep(1)343 self.find_xpath(excel.xpath_con('customScene_input_name')).send_keys(u'哈哈123')344 time.sleep(1)345 self.find_xpath(excel.xpath_con('customScene_sure')).click() # 点击确定按钮346 time.sleep(2)347 self.find_xpath(excel.xpath_con('editScene_add_equipment')).click() # 点击添加任务按钮348 time.sleep(1)349 self.switch_h5() # 切换到H5页面350 self.find_xpath(excel.xpath_con('socket_scene')).click() # 点击墙面插座351 time.sleep(1)352 self.switch_app() # 切回原生353 self.find_xpath(excel.xpath_con('socket_close')).click() # 点击关354 time.sleep(1)355 self.find_xpath(excel.xpath_con('finish_delay')).click() # 点击右上完成按钮356 time.sleep(1)357 self.find_xpath(excel.xpath_con('finishScene')).click() # 点击保存按钮358 self.wait_ac(excel.activity_con('all_scence_activity')) # 全部场景页面359 return self.find_item('哈哈123')360 # 打开插座,点击关闭插座场景361 def click_scene_close_socket(self):362 self.scene_close_socket() # 设置场景,关闭插座363 self.driver.back() # 返回首页364 self.find_xpath(excel.xpath_con('device')).click() # 点击设备365 time.sleep(1)366 self.click_device(u'墙面插座') # 点击墙面插座367 self.wait_ac(excel.activity_con('device_detail_activity'))368 time.sleep(2)369 if self.find_item(u'已关闭'):370 self.find_xpath(excel.xpath_con('socket_button')).click() # 开启插座371 time.sleep(1)372 self.driver.back()373 self.find_xpath(excel.xpath_con('home')).click() # 点击首页374 time.sleep(1)375 self.driver.find_element_by_android_uiautomator('text(\"哈哈123\")').click() # 点击场景-哈哈123376 self.find_xpath(excel.xpath_con('device')).click() # 点击设备377 time.sleep(1)378 self.click_device(u'墙面插座') # 点击墙面插座379 self.wait_ac(excel.activity_con('device_detail_activity'))380 return self.find_item('已关闭')381 # 场景,添加延时页面,点击延时按钮,弹出延时设置编辑框382 def scene_time(self):383 self.scene_page() # 全部场景页面,删除已有场景384 time.sleep(1)385 self.find_id(excel.id_con('all_scene_image_add')).click() # 点击创建场景386 self.wait_ac(excel.activity_con('add_scence_activity')) # 场景名称与图标页面387 time.sleep(1)388 self.find_xpath(excel.xpath_con('go_out')).click() # 点击离家场景图标389 time.sleep(1)390 self.find_xpath(excel.xpath_con('customScene_input_name')).send_keys(u'呵呵123')391 time.sleep(1)392 self.find_xpath(excel.xpath_con('customScene_sure')).click() # 点击确定按钮393 time.sleep(2)394 self.find_xpath(excel.xpath_con('editScene_add_equipment')).click() # 点击添加任务按钮395 time.sleep(1)396 self.switch_h5() # 切换到H5页面397 self.find_xpath(excel.xpath_con('socket_scene')).click() # 点击墙面插座398 time.sleep(1)399 self.switch_app() # 切回原生400 self.find_xpath(excel.xpath_con('socket_open')).click() # 点击开401 time.sleep(1)402 self.find_xpath(excel.xpath_con('delay_close')).click() # 点击打开延时按钮403 time.sleep(1)404 return self.find_item('秒')405 # return self.is_element('xpath', excel.xpath_con('second_1')) # 判断元素是否存在406 # 场景,添加延时页面,点击延时按钮,弹出延时设置编辑框,再次点击延时按钮,编辑框隐藏407 def scene_time_off(self):408 self.scene_time() # 场景,打开延时开关409 self.find_xpath(excel.xpath_con('delay_open')).click() # 点击关闭延时开关410 time.sleep(1)411 return self.find_item('秒')412 # 场景,添加延时页面,设置延时任务,编辑场景页面查找?秒后执行413 def scene_delay(self):414 self.scene_time() # 场景,打开延时开关415 self.tap_scene_delay() # 点击坐标,增加1s416 self.tap_scene_delay() # 点击坐标,增加1s417 self.tap_scene_delay() # 点击坐标,增加1s418 self.find_xpath(excel.xpath_con('finish_delay')).click() # 点击右上完成按钮419 time.sleep(1)420 return self.find_item('3秒后执行')421 # 场景,设置场景打开插座,点击返回按钮,弹窗:编辑的场景尚未保存,是否退出422 def editscene_back(self):423 self.scene_page() # 全部场景页面,删除已有场景424 time.sleep(1)425 self.find_id(excel.id_con('all_scene_image_add')).click() # 点击创建场景426 self.wait_ac(excel.activity_con('add_scence_activity')) # 场景名称与图标页面427 time.sleep(1)428 self.find_xpath(excel.xpath_con('go_out')).click() # 点击离家场景图标429 time.sleep(1)430 self.find_xpath(excel.xpath_con('customScene_input_name')).send_keys(u'呵呵123')431 time.sleep(1)432 self.find_xpath(excel.xpath_con('customScene_sure')).click() # 点击确定按钮433 time.sleep(2)434 self.find_xpath(excel.xpath_con('editScene_add_equipment')).click() # 点击添加任务按钮435 time.sleep(1)436 self.switch_h5() # 切换到H5页面437 self.find_xpath(excel.xpath_con('socket_scene')).click() # 点击墙面插座438 time.sleep(1)439 self.switch_app() # 切回原生440 self.find_xpath(excel.xpath_con('socket_open')).click() # 点击开441 time.sleep(1)442 self.find_xpath(excel.xpath_con('finish_delay')).click() # 点击右上完成按钮443 time.sleep(2)444 self.find_xpath(excel.xpath_con('editScene_goback')).click() # 点击左上返回按钮445 time.sleep(1)446 return self.is_element('xpath', excel.xpath_con('editScene_leave_scene')) # 判断弹窗元素是否存在447 # 场景,设置场景打开插座,点击返回按钮,点击取消,弹窗消失448 def editscene_back_cancel(self):449 self.editscene_back() # 场景编辑页面,编辑的场景尚未保存弹窗450 self.find_xpath(excel.xpath_con('editScene_cancel')).click() # 点击取消按钮451 time.sleep(1)452 return self.is_element('xpath', excel.xpath_con('editScene_leave_scene')) # 判断弹窗元素是否存在453 # 场景,设置场景打开插座,点击返回按钮,点击退出,任务未保存454 def editscene_back_exit(self):455 self.editscene_back() # 场景编辑页面,编辑的场景尚未保存弹窗456 self.find_xpath(excel.xpath_con('editScene_leave')).click() # 点击退出按钮457 time.sleep(1)458 self.long_press_custom(self.find_xpath(excel.xpath_con('first_scene'))) # 长按第一个场景459 time.sleep(1)460 self.find_id(excel.id_con('popup_edit_scene_text_edit')).click() # 点击编辑场景461 time.sleep(1)462 return self.find_item('墙面插座')463 # 场景,设置场景打开插座,点击返回按钮,点击保存并退出,任务保存成功464 def editscene_back_exitsave(self):465 self.editscene_back() # 场景编辑页面,编辑的场景尚未保存弹窗466 self.find_xpath(excel.xpath_con('editScene_leave_save')).click() # 点击退出保存按钮467 time.sleep(2)468 self.long_press_custom(self.find_xpath(excel.xpath_con('first_scene'))) # 长按第一个场景469 time.sleep(1)470 self.find_id(excel.id_con('popup_edit_scene_text_edit')).click() # 点击编辑场景471 time.sleep(1)472 return self.find_item('墙面插座')473 # 场景,设置场景打开插座,左划拉出删除按钮474 def editscene_delete(self):475 self.scene_page() # 全部场景页面,删除已有场景476 time.sleep(1)477 self.find_id(excel.id_con('all_scene_image_add')).click() # 点击创建场景478 self.wait_ac(excel.activity_con('add_scence_activity')) # 场景名称与图标页面479 time.sleep(1)480 self.find_xpath(excel.xpath_con('go_out')).click() # 点击离家场景图标481 time.sleep(1)482 self.find_xpath(excel.xpath_con('customScene_input_name')).send_keys(u'呵呵123')483 time.sleep(1)484 self.find_xpath(excel.xpath_con('customScene_sure')).click() # 点击确定按钮485 time.sleep(2)486 self.find_xpath(excel.xpath_con('editScene_add_equipment')).click() # 点击添加任务按钮487 time.sleep(1)488 self.switch_h5() # 切换到H5页面489 self.find_xpath(excel.xpath_con('socket_scene')).click() # 点击墙面插座490 time.sleep(1)491 self.switch_app() # 切回原生492 self.find_xpath(excel.xpath_con('socket_open')).click() # 点击开493 time.sleep(1)494 self.find_xpath(excel.xpath_con('finish_delay')).click() # 点击右上完成按钮495 time.sleep(2)496 self.leftswip_editscene(2000)497 return self.find_item('删除')498 # 场景,设置场景打开插座,左划拉出删除按钮,点击删除,任务被删除499 def editscene_delete_click(self):500 self.editscene_delete() # 场景编辑页面,拉出删除按钮501 time.sleep(1)502 self.find_xpath(excel.xpath_con('ediescene_delete')).click() # 点击删除按钮503 time.sleep(1)504 return self.find_item('墙面插座')505 # 场景,设置场景打开插座,点击任务,可以重新设置任务,进入设置设备状态页面506 def editscene_edit(self):507 self.scene_open_socket() # 设置场景,插座打开508 self.long_press_custom(self.find_xpath(excel.xpath_con('first_scene'))) # 长按第一个场景509 time.sleep(1)510 self.find_id(excel.id_con('popup_edit_scene_text_edit')).click() # 点击编辑场景511 time.sleep(2)512 self.find_xpath(excel.xpath_con('editscene_action_list')).click() # 点击第一个任务513 time.sleep(1)514 return self.find_item('设置设备状态')515 # 场景,添加设备页面,点击全部分区,拉出所有分区,查找xpath全部分区元素516 def editscene_allzone(self):517 self.scene_page() # 全部场景页面,删除已有场景518 time.sleep(1)519 self.find_id(excel.id_con('all_scene_image_add')).click() # 点击创建场景520 self.wait_ac(excel.activity_con('add_scence_activity')) # 场景名称与图标页面521 time.sleep(1)522 self.find_xpath(excel.xpath_con('go_out')).click() # 点击离家场景图标523 time.sleep(1)524 self.find_xpath(excel.xpath_con('customScene_input_name')).send_keys(u'呵呵123')525 time.sleep(1)526 self.find_xpath(excel.xpath_con('customScene_sure')).click() # 点击确定按钮527 time.sleep(2)528 self.find_xpath(excel.xpath_con('editScene_add_equipment')).click() # 点击添加任务按钮529 time.sleep(1)530 self.find_xpath(excel.xpath_con('device_list_allAreas')).click() # 点击全部分区531 time.sleep(1)532 return self.is_element('xpath', excel.xpath_con('all_zone')) # 验证全部分区元素是否存在533 # 场景,添加设备页面,点击全部类别,拉出所有类别,查找智能门锁534 def editscene_allcategory(self):535 self.scene_page() # 全部场景页面,删除已有场景536 time.sleep(1)537 self.find_id(excel.id_con('all_scene_image_add')).click() # 点击创建场景538 self.wait_ac(excel.activity_con('add_scence_activity')) # 场景名称与图标页面539 time.sleep(1)540 self.find_xpath(excel.xpath_con('go_out')).click() # 点击离家场景图标541 time.sleep(1)542 self.find_xpath(excel.xpath_con('customScene_input_name')).send_keys(u'呵呵123')543 time.sleep(1)544 self.find_xpath(excel.xpath_con('customScene_sure')).click() # 点击确定按钮545 time.sleep(2)546 self.find_xpath(excel.xpath_con('editScene_add_equipment')).click() # 点击添加任务按钮547 time.sleep(1)548 self.find_xpath(excel.xpath_con('device_list_Categories')).click() # 点击全部分类549 time.sleep(1)550 return self.find_item('智能门锁')551 # 场景,添加设备页面,点击批量添加,进入批量添加页面,查找全选552 def editscene_batchadd(self):553 self.scene_page() # 全部场景页面,删除已有场景554 time.sleep(1)555 self.find_id(excel.id_con('all_scene_image_add')).click() # 点击创建场景556 self.wait_ac(excel.activity_con('add_scence_activity')) # 场景名称与图标页面557 time.sleep(1)558 self.find_xpath(excel.xpath_con('go_out')).click() # 点击离家场景图标559 time.sleep(1)560 self.find_xpath(excel.xpath_con('customScene_input_name')).send_keys(u'呵呵123')561 time.sleep(1)562 self.find_xpath(excel.xpath_con('customScene_sure')).click() # 点击确定按钮563 time.sleep(2)564 self.find_xpath(excel.xpath_con('editScene_add_equipment')).click() # 点击添加任务按钮565 time.sleep(1)566 self.find_xpath(excel.xpath_con('batchAdd')).click() # 点击批量添加567 time.sleep(1)...

Full Screen

Full Screen

binary_search.py

Source:binary_search.py Github

copy

Full Screen

1"""2Binary search algorithm3"""4# def binary_search(sorted_lst, find_item):5# """6# Searchs the item in the sorted list and returns it or None7# :param sorted_lst: [int or float]8# :param find_item: int or float9# :return: int or float or None10# """11# if len(sorted_lst) == 0 or \12# not isinstance(sorted_lst[0], (int, float)) or \13# not isinstance(find_item, (int, float)):14# return None15# lst = sorted_lst16# start = 017# finish = len(lst) - 118# middle = int(len(lst) / 2)19# if find_item == lst[middle]:20# return lst[middle]21# if finish == start:22# return None23# if find_item > lst[middle]:24# new_lst = lst[middle:]25# return binary_search(new_lst, find_item)26# new_lst = lst[: middle]27# return binary_search(new_lst, find_item)28def binary_search(lst, find_item):29 """30 Searches the item in the sorted list and returns it or None31 :param lst: [int or float]32 :param find_item: int or float33 :return: int or float or None34 """35 if len(lst) == 0 or \36 not isinstance(lst[0], (int, float)) or \37 not isinstance(find_item, (int, float)):38 return None39 if find_item > lst[-1] or find_item < lst[0]:40 return None41 start = 042 finish = len(lst) - 143 while start <= finish:44 middle = int((start + finish) / 2)45 item = lst[middle]46 if find_item <= item:47 finish = middle - 148 continue49 if find_item > item:50 start = middle + 151 continue52 if find_item == lst[start]:53 return start...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run localstack automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful