




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、WEB自动动化测试培培训32016/06/03课程讲师 肖肖能尤课程目的熟悉和掌握握Unitttest单单元测试框框架课程内容 Unitttestt单元测试试框架介绍绍unitttest是是pythhon的单单元测试框框架, 在在pythhon的官官方文档中中,对unnitteest有详详细的介绍绍,想更深深一步研究究的同学可可以到htttps:/g/docc/去了解解,当然,我我这里也会会接介绍的的。uniittesst单元测测试提供了了创建测试试用例,测测试套件以以及批量执执行的方案案,unitttestt在安装ppyhtoon以后就就直接自带带了,直接接impoort uunitttes
2、t就就可以使用用。作为单单元测试的的框架,uunitttest也也是可以对对程序最小小模块的一一种敏捷化化的测试。在自动化化测试中,我我们虽然不不需要做白白盒测试,但但是必须需需要知道所所使用语言言的单元测测试框架,这这是因为把把seleeniumm2的APPI全部学学习完后,就就会遇到用用例的组织织问题,虽虽然函数式式编程和面面向对象编编程提供了了对代码的的重构,但但是对于所所编写的每每个测试用用例,总不不能编写成成一个函数数(方法)来调用执执行吧?很很显然,这这是不明智智的作法。利用单元元测试框架架,创建一一个类,该该类继承uunitttest的的TesttCasee,这样可可以把每个个c
3、asee看成是一一个最小的的单元,由由测试容器器组织起来来,到时候候直接执行行,同时引引入测试报报告(这是是一直所期期望的),对对于uniittesst部分,下下面详细的的依次介绍绍。uniittesst各组件件的关系为为: unitttest模模块实战unitttest支支持测试的的自动化处处理,也同同时包含测测试的初始始化和结束束测试,以以及把测试试用例按模模块化封装装成一个测测试套件,来来进行批量量的处理。在一个模模块化的测测试用例中中,包含共共同的代码码,如公司司教务网的的登录的测测试用例,都都得先打开开浏览器访访问项目地地址,执行行测试用例例完成后,关关闭浏览器器结束测试试,一般开开
4、始使用“setUUp”表示示,结束使使用“teearDoown”,ssetUpp和teaarDowwn被称为为测试固件件。在测试试执行的时时候,seetUp首首先被执行行,而且仅仅会执行一一次,这个个方法执行行通过后,不不管后面的的测试是否否通过,都都会执行ttearDDown来来结束测试试。在unnitteest中,提提供了TeestRuunnerr来为运行行测试,该该类对象提提供了ruun方法,其其中接受TTestCCase或或者TesstSuiite参数数,并且返返回测试结结果,一般般经常使用用的是TeextTeestRuunnerr运行器,可可以看成是是测试容器器。下面写写以教务网网的
5、登陆例例子来验证证登陆这个个用例是否否登陆成功功来说明备注:切记记在uniittesst中,测测试用例必必须以teest开头头。实现的代码码:代码:# -*- codding: utff-8 -*-from seleeniumm impport webddriveerfrom seleeniumm.webbdrivver.ssuppoort.uui immportt Sellectimporrt unnitteest, timee, reeclasss Loggin(uunitttest.TesttCasee): ddef ssetUpp(sellf): sself.drivver = web
6、bdrivver.FFireffox() sself.drivver.iimpliicitlly_waait(330) sself.basee_urll = httpp:/1192.1168.330.1880/Ueet-Ueechn/ ddef ttest_logiin(seelf): ccheckk loggin ssucceess oor faail ddriveer = selff.driiver ddriveer.geet(seelf.bbase_url) ddriveer.fiind_eelemeent_bby_idd(txxtUseerNamme).cleaar() ddrivee
7、r.fiind_eelemeent_bby_idd(txxtUseerNamme).sendd_keyys(11863445641149) ddriveer.fiind_eelemeent_bby_idd(txxtPasssworrd).cleaar() ddriveer.fiind_eelemeent_bby_idd(txxtPasssworrd).sendd_keyys(11231223) ttime.sleeep(2) ddriveer.fiind_eelemeent_bby_liink_ttext(u登录录).cclickk() ttime.sleeep(1) ddef ttearDD
8、own(selff): sself.drivver.qquit() if _namee_ = _maiin_:unitttest.mainn(verrbosiity=22)运行结果:脚本讲解:我们来详细细的介绍下下如上的代代码和输出出结果,导导入了unnitteest,创创建了测试试的类(测测试模块名名称),继继承TesstCasse,在测测试固件中中分别写的的测试时候候的初始化化和测试结结束后资源源释放的代代码,中间间testt_loggin是测测试用例,也也就是自动动化的测试试用例,在在主函数中中,直接调调用maiin(),在在mainn中加入vverboosityy=2,这这样测试的的结
9、果就会会显示的更更加详细。这里的veerbossity是是一个选项项,表示测测试结果的的信息复杂杂度,有三三个值0 (静默默模式): 你只能能获得总的的测试用例例数和总的的结果 比比如 总共共100个个 失败220 成功功801 (默认认模式): 非常类类似静默模模式 只是是在每个成成功的用例例前面有个个“.” 每个失失败的用例例前面有个个 “F”2 (详细细模式):测试结果果会显示每每个测试用用例的所有有相关的信信息在编写的每每个casse中,可可以加注释释,这样在在测试结果果中,我们们就知道该该casee是测试那那个功能的的,如上的的截图,依依据测试结结果,我们们就知道第第一个teestc
10、aase是测测试登陆的。构建测试套套件在1.1介介绍测试模模块的时候候,借助uunitttest测测试框架编编写了一个个简单的ccase,在在节中,来来介绍怎么么构建测试试套件,测测试套件顾顾名思义就就是测试用用例的容器器。 在说说明测试套套件的时候候,以老师师平板的项项目为案例例,来说明明测试套件件在项目中中的实际应应用。新建建testtCasee的pacckagee,在paackagge中创建建testt_a1_logiin 登陆陆模块和testt_a100_saffe_cuustoddy 安全全监护模块块等,见目录录结构test_a10_safee_cusstodyy模块代码:#codi
11、ing:uutf-88from appiium iimporrt weebdriiverfrom seleeniumm impport webddriveerfrom timee impport sleeepfrom seleeniumm.webbdrivver.ccommoon.byy impport Byimporrt unnitteest,ssyssys.ppath.appeend(./paage)from pagee.basseTesstCasse immportt ApppTesttCasee#安全监护护classs Saffe_cuustoddy(ApppTesstCasse):
12、ddef ttest_a1_SSafe_custtody(selff): 首页页-安全全监护 sself.drivver.ffind_elemment(By.NNAME,u安全全监护).cliick() sself.waitt ddef ttest_a2_SSafe_custtody_botttom(sself): 点击击安全监护护-讲台台-底部部 sself.drivver.ffind_elemment(By.NNAME,u安全全监护).cliick() sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersp
13、pad:iid/rddobtnn_revversee).cclickk() sself.waitt ddef ttest_a3_SSafe_custtody_top(selff): 点击击安全监护护-讲台台-底部部-顶部部 sself.drivver.ffind_elemment(By.NNAME,u安全全监护).cliick() sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/rddobtnn_revversee).cclickk() sself.waitt sself.drivver.
14、ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/rddobtnn_obvversee).cclickk() sself.waitt if _namee_=_mmain_: uunitttest.mainn(verrbosiity=22) # # #构造测测试集# suitte = unitttestt.TesstSuiite() # suitte.adddTesst(Saafe_ccustoody(testt_a3_Safee_cusstodyy_topp)# # # 执行行测试# runnner = uniittesst.TeextTee
15、stRuunnerr()# runnner.rrun(ssuitee)1.2.11 adddTestt的应用当有多个或或者几百测测试用例的的时候,这这样就需要要一个测试试容器(测测试套件),把测试试用例放在在该容器中中进行执行行,uniittesst模块中中提供了TTestSSuitee类来生成成测试套件件,使用该该类的构造造函数可以以生成一个个测试套件件的实例,该该类提供了了addTTest来来把每个测测试用例加加入到测试试套件中。在wekke模块中中编写了测测试使用到到的方法,下下来我们ttest_a10_safee_cusstodyy模块中编编写几个测测试用例,以以实例的方方式来说明明a
16、ddTTest的的应用,见见wekeeTestt模块中的的代码和执执行结果截截图:代码:#codiing:uutf-88from appiium iimporrt weebdriiverfrom seleeniumm impport webddriveerfrom timee impport sleeepfrom seleeniumm.webbdrivver.ccommoon.byy impport Byimporrt unnitteest,ssyssys.ppath.appeend(./paage)from pagee.basseTesstCasse immportt ApppTesttCa
17、see#安全监护护classs Saffe_cuustoddy(ApppTesstCasse): ddef ttest_a1_SSafe_custtody(selff): 首页页-安全全监护 sself.drivver.ffind_elemment(By.NNAME,u安全全监护).cliick() sself.waitt ddef ttest_a2_SSafe_custtody_botttom(sself): 点击击安全监护护-讲台台-底部部 sself.drivver.ffind_elemment(By.NNAME,u安全全监护).cliick() sself.waitt sself.dr
18、ivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/rddobtnn_revversee).cclickk() sself.waitt ddef ttest_a3_SSafe_custtody_top(selff): 点击击安全监护护-讲台台-底部部-顶部部 sself.drivver.ffind_elemment(By.NNAME,u安全全监护).cliick() sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/rddobtn
19、n_revversee).cclickk() sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/rddobtnn_obvversee).cclickk() sself.waitt if _namee_=_mmain_: #构造测试试集 ssuitee = uunitttest.TesttSuitte() ssuitee.adddTestt(Saffe_cuustoddy(ttest_a1_SSafe_custtody) ssuitee.adddTestt(Saffe_cuustoddy(tt
20、est_a2_SSafe_custtody_botttom) ssuitee.adddTestt(Saffe_cuustoddy(ttest_a3_SSafe_custtody_top) # 执行测测试 rrunneer = unitttestt.TexxtTesstRunnner(verbbositty=2) rrunneer.ruun(suuite) 运行结果:依据执行结结果的截图图,可以很很清楚的看看到,先执执行tesst_a1,至到到testt_a3,这是是由如下代代码决定的的: suuite = unnitteest.TTestSSuitee() suuite.addTTest(Sa
21、fee_cusstodyy(teest_aa1_Saafe_ccustoody) suuite.addTTest(Safee_cusstodyy(teest_aa2_Saafe_ccustoody_bbottoom) suuite.addTTest(Safee_cusstodyy(teest_aa3_Saafe_ccustoody_ttop)suitee是测试套套件的实例例,调用aaddTeest()方法添加加需要执行行的casse,顺序序可以依次次来,或者者按自己的的想法来,添添加casse到测试试套件后,调调用uniittesst模块中中TexttTesttRunnner类的的run()方
22、法,传传入参数为为测试套件件的实例ssuitee。使用aaddTeest方法法,可以实实现把测试试的casse添加到到测试套件件suitte中,但但是我个人人不建议使使用adddTestt()方法法,理由很很简单,如如果测试ccase很很多,都得得需要添加加,感觉是是重复造轮轮子。1.2.22 makkeSuiite()在介绍adddTesst()方方法的时候候,就说到到了它的缺缺点,重复复造轮子并并不是想要要的,但是是代码还是是得一步一一步的重构构。在unnitteest框架架中提供了了makeeSuitte()的的方法,mmakeSSuitee可以实现现把测试用用例类内所所有的测试试cas
23、ee组成的测测试套件TTestSSuitee,uniittesst调用mmakeSSuitee的时候,只只需要把测测试类名称称传入即可可。把上面面的代码使使用makkeSuiite重构构后为:代码重构:#codiing:uutf-88from appiium iimporrt weebdriiverfrom seleeniumm impport webddriveerfrom timee impport sleeepfrom seleeniumm.webbdrivver.ccommoon.byy impport Byimporrt unnitteest,ssyssys.ppath.appeen
24、d(./paage)from pagee.basseTesstCasse immportt ApppTesttCasee#安全监护护classs Saffe_cuustoddy(ApppTesstCasse): ddef ttest_a1_SSafe_custtody(selff): 首页页-安全全监护 sself.drivver.ffind_elemment(By.NNAME,u安全全监护).cliick() sself.waitt ddef ttest_a2_SSafe_custtody_botttom(sself): 点击击安全监护护-讲台台-底部部 sself.drivver.ffin
25、d_elemment(By.NNAME,u安全全监护).cliick() sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/rddobtnn_revversee).cclickk() sself.waitt ddef ttest_a3_SSafe_custtody_top(selff): 点击击安全监护护-讲台台-底部部-顶部部 sself.drivver.ffind_elemment(By.NNAME,u安全全监护).cliick() sself.waitt sself.drivver.f
26、find_elemment(By.IID,ccom.uuet.tteachhersppad:iid/rddobtnn_revversee).cclickk() sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/rddobtnn_obvversee).cclickk() sself.waitt if _namee_=_mmain_: #构造测试试集 ssuitee=uniittesst.TeestSuuite(unitttestt.makkeSuiite(SSafe_custtody) # 执
27、行测测试 rrunneer = unitttestt.TexxtTesstRunnner(verbbositty=2) rrunneer.ruun(suuite) 运行结果果:利用makkeSuiite方法法,就不需需要担心有有多少个ccase了了,只需要要把测试的的类传入即即可。1.2.33 TesstLoaader()TestLLoadeer用于创创建类和模模块的测试试套件,一一般的情况况下,使用用TestLLoadeer().loaddTesttsFroomTesstCasse(TeestCllass)来加载测测试类。实现的代码码:#codiing:uutf-88from appiium
28、 iimporrt weebdriiverfrom seleeniumm impport webddriveerfrom timee impport sleeepfrom seleeniumm.webbdrivver.ccommoon.byy impport Byimporrt unnitteest,ssyssys.ppath.appeend(./paage)from pagee.basseTesstCasse immportt ApppTesttCasee#安全监护护classs Saffe_cuustoddy(ApppTesstCasse): ddef ttest_a1_SSafe_cus
29、ttody(selff): 首页页-安全全监护 sself.drivver.ffind_elemment(By.NNAME,u安全全监护).cliick() sself.waitt ddef ttest_a2_SSafe_custtody_botttom(sself): 点击击安全监护护-讲台台-底部部 sself.drivver.ffind_elemment(By.NNAME,u安全全监护).cliick() sself.waitt selff.driiver.findd_eleementt(By.ID,com.uet.teacchersspad:id/rrdobttn_reeversse)
30、.clicck() sself.waitt ddef ttest_a3_SSafe_custtody_top(selff): 点击击安全监护护-讲台台-底部部-顶部部 sself.drivver.ffind_elemment(By.NNAME,u安全全监护).cliick() sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/rddobtnn_revversee).cclickk() sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.u
31、uet.tteachhersppad:iid/rddobtnn_obvversee).cclickk() sself.waitt if _namee_=_mmain_: #构造测试试集# suitte=unnitteest.TTestSSuitee(uniittesst.maakeSuuite(Safee_cusstodyy) ssuitee=uniittesst.TeestLooaderr().lloadTTestssFrommTesttCasee(Saffe_cuustoddy) # 执行测测试 rrunneer = unitttestt.TexxtTesstRunnner(verbbos
32、itty=2) rrunneer.ruun(suuite) 实现结果:1.2.44 disscoveer()discoover是是通过递归归的方式到到其子目录录中从指定定的目录开开始,找到到所有测试试模块并返返回一个包包含它们对对象的TeestSuuite,然然后进行加加载与模式式匹配唯一一的测试文文件,diiscovver参数数分别为ddiscoover(dir,patttern,top_leveel_diir=Noone)。修改下之之前的模块块,把测试试脚本的模模块放在TTestCCase的的模块下,把把被调用测测试的文件件放在Paage的模模块下,见见调整后的的目录截图图:截图显示为为调
33、整后的的目录结构构,分别讲讲一个测试试用例和rrun_tteachhersppad_ttest。的实现源码码。test_a10_safee_cusstodyy模块的代代码:#codiing:uutf-88from appiium iimporrt weebdriiverfrom seleeniumm impport webddriveerfrom timee impport sleeepfrom seleeniumm.webbdrivver.ccommoon.byy impport Byfrom mmon.toucch_acctionn impport ToucchActtionimporrt
34、 unnitteest,ssyssys.ppath.appeend(./paage)from pagee.basseTesstCasse immportt ApppTesttCaseeclasss tassk_onnlinee(ApppTesttCasee): #今日任务务-上课 ddef ttest_a1_aattennd_cllass11(sellf): 点击击上课 sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/ueet_maain_sstudyy_bt).cllick() sself.waitt #今日任
35、务务-作业待待改 ddef ttest_a2_jjob_tto_bee_chaangedd(sellf): 今日日任务-作业待待改 sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/ueet_maain_ddoworrk_btt).cclickk() sself.waitt #今日任务务-在线答答疑 ddef ttest_a3_ttask_onliine(sself): 点击击在线答疑疑 sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid
36、/ueet_maain_oonlinne_btt).cclickk() sself.waitt #今日任务务-在线答答疑-查看看全部 ddef ttest_a4_ttask_onliineAlll(seelf): 点击击在线答疑疑-查看全全部 sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/ueet_maain_oonlinne_btt).cclickk() sself.waitt sself.drivver.ffind_elemment(By.XXPATHH,/com.uet.teacchersspad.vie
37、ww.hliistviiew.wwidgeet.HLListVViewconttainss(reesourrce-iid,ccom.uuet.tteachhersppad:iid/lvv_conntentt)/andrroid.widgget.RRelattiveLLayouut1).cclickk() sself.waitt#今日任务务-在线答答疑-查看看第一个学学生的所有有在线答疑疑 ddef ttest_a5_ttask_onliine_OOneSttu(seelf): 点击击在线答疑疑-查看第第一个学生生的所有在在线答疑 sself.drivver.ffind_elemment(By.
38、IID,ccom.uuet.tteachhersppad:iid/ueet_maain_oonlinne_btt).cclickk() sself.waitt sself.drivver.ffind_elemment(By.XXPATHH,/com.uet.teacchersspad.vieww.hliistviiew.wwidgeet.HLListVViewconttainss(reesourrce-iid,ccom.uuet.tteachhersppad:iid/lvv_conntentt)/andrroid.widgget.RRelattiveLLayouut2).cclickk() s
39、self.waitt#今日任务务-在线答答疑-查看看第一个(最新)提提问详情 ddef ttest_a6_ttask_onliine_ffirsttQuesstionn(sellf): 点击击在线答疑疑-查看第第一个提问问详情(列列表中最新新的问题) sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/ueet_maain_oonlinne_btt).cclickk() sself.waitt sself.drivver.ffind_elemment(By.XXPATHH,/andrroid.widgget.LLis
40、tVViewconttainss(reesourrce-iid,ccom.uuet.tteachhersppad:iid/lvv_lefft_liist)/anndroiid.wiidgett.LinnearLLayouut1).cclickk() sself.waitt#今日任务务-在线答答疑-答复复第一个(最新)提提问 ddef ttest_a7_ttask_onliine_ffirsttQuesstionn_repply1(selff): 点击击在线答疑疑-使用文文字答复第第一个提问问(列表中中最新的问问题) sself.drivver.ffind_elemment(By.IID,cco
41、m.uuet.tteachhersppad:iid/ueet_maain_oonlinne_btt).cclickk() sself.waitt sself.drivver.ffind_elemment(By.XXPATHH,/andrroid.widgget.LListVViewconttainss(reesourrce-iid,ccom.uuet.tteachhersppad:iid/lvv_lefft_liist)/anndroiid.wiidgett.LinnearLLayouut1).cclickk() sself.waitt sself.drivver.ffind_elemment
42、(By.IID,ccom.uuet.tteachhersppad:iid/eddtTxtt_conntentt).ssend_keyss(u你你好) sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/tvv_sennd).clicck() sself.waitt#今日任务务-在线答答疑-答复复第一个(最新)提提问 ddef ttest_a8_ttask_onliine_ffirsttQuesstionn_repply2(selff): 点击击在线答疑疑-使用音音频答复第第一个提问问(列表中中最新的问问题) ssel
43、f.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/ueet_maain_oonlinne_btt).cclickk() sself.waitt sself.drivver.ffind_elemment(By.XXPATHH,/andrroid.widgget.LListVViewconttainss(reesourrce-iid,ccom.uuet.tteachhersppad:iid/lvv_lefft_liist)/anndroiid.wiidgett.LinnearLLayouut1).cclickk() sself
44、.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/ivv_reccord).cllick() sself.waitt ttouchh=TouuchAcctionn(sellf.drriverr) sself.waitt ttouchh.lonng_prress(selff.driiver.findd_eleementt(By.ID,com.uet.teacchersspad:id/bbtn_ppin),5).perfform() #今日任务务-在线答答疑-公开开第一个在在线答疑 ddef ttest_
45、a9_ttask_onliine_ffirsttQuesstionn_isPPubliic(seelf): 点击击在线答疑疑-公开第第一个提问问(列表中中最新的问问题) sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/ueet_maain_oonlinne_btt).cclickk() sself.waitt sself.drivver.ffind_elemment(By.XXPATHH,/andrroid.widgget.LListVViewconttainss(reesourrce-iid,ccom.uuet
46、.tteachhersppad:iid/lvv_lefft_liist)/anndroiid.wiidgett.LinnearLLayouut1).cclickk() sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/rddo_issPubllic).cliick() sself.waitt#今日任务务-在线答答疑-不公公开第一个个在线答疑疑 ddef ttest_a10_taskk_onlline_firsstQueestioon_issNotPPubliic(seelf): 点击击在线答
47、疑疑-不公开开第一个提提问(列表表中最新的的问题) sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/ueet_maain_oonlinne_btt).cclickk() sself.waitt sself.drivver.ffind_elemment(By.XXPATHH,/andrroid.widgget.LListVViewconttainss(reesourrce-iid,ccom.uuet.tteachhersppad:iid/lvv_lefft_liist)/anndroiid.wiidgett.Lin
48、nearLLayouut1).cclickk() sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/rddo_issNotPPubliic).clicck() sself.waitt#今日任务务-在线答答疑-第一一个在线答答疑-推荐荐课程 ddef ttest_a12_taskk_onlline_firsstQueestioon_cooursees(seelf): 点击击在线答疑疑-第一个个提问(列列表中最新新的问题)-推荐课程程 sself.drivver.ffind_elemment(B
49、y.IID,ccom.uuet.tteachhersppad:iid/ueet_maain_oonlinne_btt).cclickk() sself.waitt sself.drivver.ffind_elemment(By.XXPATHH,/andrroid.widgget.LListVViewconttainss(reesourrce-iid,ccom.uuet.tteachhersppad:iid/lvv_lefft_liist)/anndroiid.wiidgett.LinnearLLayouut2).cclickk() sself.waitt sself.drivver.ffind
50、_elemment(By.XXPATHH,/andrroid.widgget.LListVViewconttainss(reesourrce-iid,ccom.uuet.tteachhersppad:iid/lvv_rigght_cchat_listt)/andrroid.widgget.LLineaarLayyout1/aandrooid.wwidgeet.ReelatiiveLaayoutt/anddroidd.widdget.RelaativeeLayoout/aandrooid.wwidgeet.TeextViiewccontaains(ressourcce-idd,coom.ueet
51、.teeacheerspaad:idd/tv_rec_courrses).cliick() sself.waitt#今日任务务-在线答答疑-搜索索 ddef ttest_a13_taskk_onlline_searrch(sself): 点击击在线答疑疑-搜索 sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/ueet_maain_oonlinne_btt).cclickk() sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersp
52、pad:iid/liinearr_seaarch).cllick() sself.waitt#今日任务务-在线答答疑-搜索索(班级) ddef ttest_a14_taskk_onlline_searrch1(selff): 点击击在线答疑疑-搜索-按班级搜搜索(三(11)班) sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/ueet_maain_oonlinne_btt).cclickk() sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tt
53、eachhersppad:iid/liinearr_seaarch).cllick() sself.waitt sself.drivver.ffind_elemment(By.XXPATHH,/com.uet.teacchersspad.vieww.hliistviiew.wwidgeet.HLListVViewconttainss(reesourrce-iid,ccom.uuet.tteachhersppad:iid/lvv_conntentt)/andrroid.widgget.LLineaarLayyout2).cliick() sself.waitt sself.drivver.ffi
54、nd_elemment(By.IID,ccom.uuet.tteachhersppad:iid/seearchh_btnn).cclickk() sself.waitt#今日任务务-在线答答疑-搜索索(发起人人) ddef ttest_a15_taskk_onlline_searrch2(selff): 点击击在线答疑疑-搜索-按发起人人搜索 sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/ueet_maain_oonlinne_btt).cclickk() sself.waitt sself.drivver.f
55、find_elemment(By.IID,ccom.uuet.tteachhersppad:iid/liinearr_seaarch).cllick() sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/edditCllassTTitlee1).sendd_keyys(001) sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/seearchh_btnn).cclickk() sself.
56、waitt#今日任务务-在线答答疑-搜索索(日期) ddef ttest_a16_taskk_onlline_searrch3(selff): 点击击在线答疑疑-搜索-按日期搜搜索 sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/ueet_maain_oonlinne_btt).cclickk() sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/liinearr_seaarch).cllick() sself
57、.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/edditCllassTTitlee2).clicck() sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/bttnDatteOk).cllick() sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/seearchh_btnn).cclickk
58、() sself.waitt#今日任务务-在线答答疑-搜索索(结合搜搜索:班级级、发起人人、日期) ddef ttest_a17_taskk_onlline_searrch4(selff): 点击击在线答疑疑-搜索-按班级、发起人、日期搜索索 sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/ueet_maain_oonlinne_btt).cclickk() sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/l
59、iinearr_seaarch).cllick() sself.waitt sself.drivver.ffind_elemment(By.XXPATHH,/com.uet.teacchersspad.vieww.hliistviiew.wwidgeet.HLListVViewconttainss(reesourrce-iid,ccom.uuet.tteachhersppad:iid/lvv_conntentt)/andrroid.widgget.LLineaarLayyout2).cliick() sself.waitt sself.drivver.ffind_elemment(By.IID
60、,ccom.uuet.tteachhersppad:iid/edditCllassTTitlee1).sendd_keyys(001) sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/edditCllassTTitlee2).clicck() sself.waitt sself.drivver.ffind_elemment(By.IID,ccom.uuet.tteachhersppad:iid/bttnDatteOk).cllick() sself.waitt sself.drivver.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《餐饮服务与管理》课件-教学课件:闽浙湘徽
- 2025年合作联盟合同范本
- 肾小管性酸中毒的临床护理
- 五年级数学下《分数的基本性质》公开课教学设计
- 三尖瓣畸形的临床护理
- 2025劳动合同试用期限是多少个月
- 2025劳动合同范本【简单】
- 《2025年光纤传输网络建设合同》
- 2025年上海市各区高三二模语文试题汇编《文言文一》含答案
- 初中历史金与南宋对峙课件-2024-2025学年统编版七年级历史下册
- 2025年装维智企工程师(三级)复习模拟100题及答案
- 国家管网集团西南管道昆明输油气分公司突发环境事件综合应急预案
- 停送电培训课件
- 医院培训课件:《核心制度-护理值班和交接班制度》
- 解题秘籍05 圆的综合问题(9种题型汇-总+专题训练)(解析版)-2025年中考数学重难点突破
- 无线网络施工方案
- 电商平台居间合同
- 阮乐器美术课件
- 中国大唐集团有限公司陆上风电工程标杆造价指标(2023年)
- 美学《形象设计》课件
- 江苏省建筑与装饰工程计价定额(2014)电子表格版
评论
0/150
提交评论