def test_basic_test(self):
        """演示脚本"""
        # ************************** login ************************
        page = login_page.IndexPage(self.dr)
        page.into_page('http://192.168.0.65:8010/')
        page.input_username_key('admin')
        page.input_password_key('123456')
        page.click_button()
        time.sleep(7)

        # ************************** porject ***********************
        self.dr.click('id->systemName')
        time.sleep(1)

        self.dr.click('xpath->/html/body/div[1]/ul/li[2]/ul/li[5]')
        time.sleep(3)

        self.dr.click('id->551')  #基础数据配置
        time.sleep(2)

        self.dr.click('id->644')  #旅行社
        time.sleep(3)

        # ************************ 切换frame **********************
        self.dr.switch_to_frame('id->indIframe')
        time.sleep(3)

        # ************************* before check ********************
        text_before = self.dr.get_text(
            'xpath->/html/body/div[2]/div/div[2]/div[2]/div/span')

        # ************************** actions ************************
        self.dr.click('id->listAddButton')
        time.sleep(3)
        self.dr.type('name->name', 'lvxing')  #名称

        self.dr.click('xpath->//*[@id="regionSelector"]/div[3]')
        time.sleep(2)
        self.dr.click(
            'xpath->//*[@id="regionSelector"]/div[3]/ul/li[2]')  #所属地区
        time.sleep(2)

        self.dr.click('id->mbBox9')
        time.sleep(3)
        self.dr.click('xpath->//*[@id="messMap"]/div[1]/div[1]')
        time.sleep(3)
        self.dr.click('xpath->/html/body/div[4]/div[2]/div[1]/div/a')  #经纬度
        time.sleep(3)

        self.dr.click('xpath->//*[@id="dataForm"]/div[2]/div/button')

        # ************************ check after ************************
        # check 1:数量变化
        text_fater = self.dr.get_text(
            'xpath->/html/body/div[2]/div/div[2]/div[2]/div/span')
        # text_before equal text_fater
        if text_before == text_fater:
            pass
        else:
            raise SystemError
    def test_actions_search_001(self):
        """
        用例编号:actions_search_001
        模块:search
        功能点:搜索(指定)
        """
        # ****************************** login ******************************
        page = login_page.IndexPage(self.dr)
        page.into_page('')
        page.input_username_key('')
        page.input_password_key('')
        page.input_code_key('')
        page.click_button()
        time.sleep(7)
        # ****************************** login check ******************************
        self.assertEqual(u'', page.return_title())

        # ****************************** porject ******************************
        self.dr.click('')
        self.dr.sleep(3)

        # ****************************** 切换frame ******************************
        self.dr.switch_to_frame('')
        self.dr.sleep(3)

        # ****************************** actions search ******************************
        """actions_search"""
    def test_login_page(self):
        """ login """
        #************************** login ************************

        page = login_page.IndexPage(self.dr)
        page.into_page('https://www.baidu.com/')
        self.dr.type('id->kw','中国')
    def test_login_page(self):
        """ login """
        #************************** login ************************
        page = login_page.IndexPage(self.dr)
        page.into_page('http://192.168.0.65:8010/')
        page.input_username_key('admin')
        page.input_password_key('123456')
        page.click_button()
        time.sleep(7)
        self.assertEqual(u'旅游公共信息服务平台', page.return_title())

        #************************** porject ***********************
        self.dr.click('id->systemName')
        time.sleep(1)

        self.dr.click('xpath->/html/body/div[1]/ul/li[2]/ul/li[7]')
        time.sleep(3)

        self.dr.click('id->790')#产品管理
        time.sleep(2)

        self.dr.click('id->792')#门票
        time.sleep(3)

        #************************ 切换frame **********************
        self.dr.switch_to_frame('id->indIframe')
        time.sleep(3)

        #************************* before check ********************
        pass

        #************************** actions ************************
        self.dr.click('xpath->//*[@id="listForm"]/div[2]/a[1]')
        time.sleep(2)
示例#5
0
 def _search(self, data_values):
     """封装的函数"""
     page = login_page.IndexPage(self.dr)
     page.into_page()
     page.input_username_key(data_values[0])
     page.input_password_key(data_values[1])
     page.input_code_key(data_values[2])
     page.click_button()
     time.sleep(2)
示例#6
0
 def _search(self,data_values):
     """封装的函数"""
     page = login_page.IndexPage(self.dr)
     page.into_page('http://192.168.0.65:8010/')
     page.input_username_key(data_values[0])
     page.input_password_key(data_values[1])
     page.input_code_key(data_values[2])
     page.click_button()
     sleep(2)
    def test_basic_test(self):
        """演示脚本"""
        # ************************** login ************************
        page = login_page.IndexPage(self.dr)
        page.into_page('http://192.168.0.65:8010/')
        page.input_username_key('admin')
        page.input_password_key('123456')
        page.click_button()
        time.sleep(7)
        # self.assertEqual(u'旅游行业管理平台3.0.0', page.return_title())

        # ************************** porject ***********************
        self.dr.click('id->systemName')
        time.sleep(1)

        self.dr.click('xpath->/html/body/div[1]/ul/li[2]/ul/li[5]')
        time.sleep(3)

        self.dr.click('id->551')  #基础数据配置
        time.sleep(2)

        self.dr.click('id->654')  #特色美食
        time.sleep(3)

        # ************************ 切换frame **********************
        self.dr.switch_to_frame('id->indIframe')
        time.sleep(3)

        # ************************* before check ********************
        text_before = self.dr.get_text(
            'xpath->/html/body/div[2]/div/div[2]/div[2]/div/span')

        # ************************** actions ************************
        self.dr.click('id->listAddButton')
        time.sleep(3)
        self.dr.type('name->name', 'tesemeishi')  #名称

        self.dr.click('xpath->//*[@id="regionSelector"]/div[3]')
        time.sleep(2)
        self.dr.click(
            'xpath->//*[@id="regionSelector"]/div[3]/ul/li[2]')  #所属地区
        time.sleep(2)

        self.dr.type('name->summary', 'easy')  #美食简介

        self.dr.click('xpath->//*[@id="dataForm"]/div[2]/div/button')

        # ************************ check after ************************
        # check 1:数量变化
        text_fater = self.dr.get_text(
            'xpath->/html/body/div[2]/div/div[2]/div[2]/div/span')
        # text_before equal text_fater
        if text_before == text_fater:
            pass
        else:
            raise SystemError
示例#8
0
    def test_basic_test(self):
        """演示脚本"""
        #**************************login************************
        page = login_page.IndexPage(self.dr)
        page.into_page('http://192.168.0.65:8010/')
        page.input_username_key('admin')
        page.input_password_key('123456')
        page.click_button()
        time.sleep(7)
        # self.assertEqual(u'旅游行业管理平台3.0.0', page.return_title())

        #**************************porject***********************
        # project=u'资源管理'
        # page.project_number(project)
        self.dr.click('xpath->//*[@id="itemUl"]/li[5]')
        time.sleep(3)

        # type=u'景区'
        # page.type_number(type)
        self.dr.click('id->627')
        time.sleep(3)

        #**************************切换frame**********************
        self.dr.switch_to_frame('id->main')
        time.sleep(3)
        t1 = page.data_number()
        time.sleep(2)
        # self.dr.click('xpath->//*[@id="listForm"]/div/div/div[1]/div[4]/a[1]')
        # self.dr.switch_to_frame('id->layui-layer-iframe1')
        time.sleep(7)

        #**************************添加数据************************
        page.actions_type_add_all(type, '1')
        time.sleep(3)
        page.actions_type_add_all(type, '2')
        time.sleep(3)
        page.actions_type_add_all(type, '3')
        time.sleep(3)
        page.actions_type_add_all(type, '4')
        time.sleep(3)

        #*********************比对添加前后数据总数*******************
        self.dr.switch_to_frame_out()
        time.sleep(3)
        self.dr.switch_to_frame('id->main')
        time.sleep(3)
        t2 = page.data_number()
        # get_img(self.dr,'123.png')
        t3 = t2 - t1
        if t3 == 1:
            self.dr.my_print("Resources added successfully", )
        else:
            # print
            raise SystemError
示例#9
0
    def test_actions_delete_001(self):
        """
        用例编号:actions_delete_001
        模块:delete
        功能点:删除(指定)
        """
        # ****************************** login ******************************
        page = login_page.IndexPage(self.dr)
        page.into_page('')
        page.input_username_key('')
        page.input_password_key('')
        page.input_code_key('')
        page.click_button()
        time.sleep(7)
        # ****************************** login check ******************************
        self.assertEqual(u'', page.return_title())

        # ****************************** porject ******************************
        self.dr.click('')
        self.dr.sleep(3)

        # ****************************** 切换frame ******************************
        self.dr.switch_to_frame('')
        self.dr.sleep(3)

        # ****************************** before check(获取信息总数) ******************************
        text_before = self.dr.get_text('')
        # print text_before

        # ****************************** actions delete ******************************
        """actions_delete"""
        #选择一个或多个,或者all。
        self.dr.click('***->***')#选择对象
        self.dr.sleep(1)
        self.dr.click('***->***')#删除操作
        self.dr.sleep(3)

        # ****************************** check after(操作后check总数变化) ******************************
        text_after = self.dr.get_text('')
    def test_login_001(self):
        """ login """
        #****************************** login ******************************
        page = login_page.IndexPage(self.dr)
        page.into_page('')
        page.input_username_key('')
        page.input_password_key('')
        page.input_code_key('')
        page.click_button()
        time.sleep(7)
        self.assertEqual(u'', page.return_title())


    # def test_project_001(self):
        """project"""
        #****************************** porject ******************************
        self.dr.click('')
        self.dr.sleep(3)

        #****************************** 切换frame ******************************
        self.dr.switch_to_frame('')
        self.dr.sleep(3)


        #****************************** before check(获取信息总数) ******************************
        text_before = self.dr.get_text('')
        # print text_before


    # def test_actions_add_001(self):
        """actions_add"""
        #****************************** actions ******************************



    # def test_check(self):
        """check"""
    def test_login_page(self):
        """ login """
        #************************** login ************************
        self.fake = Factory.create("zh_CN")
        page = login_page.IndexPage(self.dr)
        page.into_page('http://192.168.0.65:8010/')
        page.input_username_key('admin')
        page.input_password_key('123456')
        page.click_button()
        time.sleep(7)
        self.assertEqual(u'旅游公共信息服务平台', page.return_title())

        #************************** porject ***********************
        self.dr.click('id->systemName')
        time.sleep(1)

        self.dr.click('xpath->/html/body/div[1]/ul/li[2]/ul/li[7]')
        time.sleep(3)

        self.dr.click('id->790')  #产品管理
        time.sleep(2)

        self.dr.click('id->836')  #酒店
        time.sleep(3)

        #************************ 切换frame **********************
        self.dr.switch_to_frame('id->indIframe')
        time.sleep(3)

        #************************* before check ********************
        text_before = self.dr.get_text(
            'xpath->//*[@id="listForm"]/div[4]')  #获取当前页面条数显示信息
        print text_before

        #************************** actions ************************
        self.dr.click('xpath->//*[@id="listForm"]/div[2]/a[1]')  #点击添加
        self.dr.sleep(3)

        #选择酒店 *
        self.dr.click('id->companyName')
        time.sleep(2)
        self.dr.click('xpath->/html/body/div[5]/div[2]/table/tbody/tr[1]')

        #商户(默认)
        #选择房型 *
        #新增
        # self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[4]/td/a')
        # time.sleep(3)
        # self.dr.type('name->name','***')    #房型
        # self.dr.type('name->storey','***')  #楼层
        # self.dr.type('name->bedType','***') #床型
        # self.dr.type('name->num','***')      #可住人数
        # self.dr.type('name->acreage','***') #面积
        # self.dr.type('name->window','***')  #窗户
        # self.dr.type('name->wifi','***')   #wifi
        # self.dr.type('name->panorama','***')    #720全景
        # self.dr.click('xpath->//*[@id="num2"]/td[10]/button[1]')    #房型设施
        # self.dr.click('xpath->//*[@id="num2"]/td[11]/button[1]')    #房型图片
        # self.dr.click('xpath->//*[@id="num2"]/td[12]/button')   #删除
        # self.dr.click('id->butsubmit')  #保存
        # self.dr.click('xpath->//*[@id="inputForm"]/input[2]')   #返回
        # #选择
        # self.dr.click('id->companyTypeId')

        #产品名称 *
        self.dr.type('name->name', '123')

        #服务特色 *
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[6]/td/span/label'
        )  #随时退
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[6]/td/span/span'
        )  #秒发码

        #是否含早
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[7]/td/label[1]')  #无
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[7]/td/label[2]'
        )  #含早
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[7]/td/label[3]'
        )  #含双早
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[7]/td/label[4]'
        )  #含三早
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[7]/td/label[5]'
        )  #有(收费)

        #验票人 *
        # self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[8]/td/label')
        #其他验票人
        self.dr.click('id->selectCheckTicketMember')
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->/html/body/div[8]/div[3]/div/iframe')
        self.dr.sleep(3)
        self.dr.click('id->selectAll')
        self.dr.sleep(2)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)
        self.dr.click('xpath->/html/body/div[8]/div[4]/input[1]')
        self.dr.sleep(2)

        #商品头图
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/div/div[2]/ul/li/div/a'
        )
        self.dr.sleep(3)
        os.system('D:\WinClick3.exe')  #AUTO
        self.dr.sleep(3)

        #商品封面图
        self.dr.click('id->logoUploadBox_1_1')
        self.dr.sleep(3)
        os.system('D:\WinClick4.exe')  #AUTO
        self.dr.sleep(3)

        #销售渠道
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[11]/td/label[1]/label[1]'
        )  #C端
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[11]/td/label[2]'
        )  #PC商场
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[11]/td/label[3]'
        )  #购票机

        #取消设置
        self.dr.type('name->autoCancelTime', '***')

        #联系人信息
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[14]/td/label[3]')

        #出售时间
        #1(默认)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[15]/td/label[1]')
        #2
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[15]/td/label[2]/input[1]'
        )
        self.dr.sleep(1)
        self.dr.click('id->saleStartTime')
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(3)
        self.dr.click('xpath->/html/body/div/div[6]/input[2]')
        self.dr.sleep(3)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        self.dr.click('name->saleEndTime')
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(2)
        self.dr.click('id->dpTodayInput')
        self.dr.sleep(2)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        #3
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[15]/td/label[3]')

        #短信模板 *
        self.dr.click('id->smsThemeId')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[16]/td/div/ul/li[1]'
        )

        #价格库存 *
        self.dr.click('id->batchset')  #批量上架

        self.dr.sleep(2)
        self.dr.click('id->startDate_1')
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(2)
        self.dr.click('id->dpTodayInput')
        self.dr.sleep(3)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)
        self.dr.click('id->endDate_1')
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(3)
        self.dr.click('id->dpTodayInput')
        self.dr.sleep(3)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        self.dr.click(
            'xpath->//*[@id="dateStock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[1]'
        )  #星期1
        self.dr.sleep(1)
        self.dr.click(
            'xpath->//*[@id="dateStock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[2]'
        )  #星期2
        self.dr.sleep(1)
        self.dr.click(
            'xpath->//*[@id="dateStock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[3]'
        )  #星期3
        self.dr.sleep(1)
        self.dr.click(
            'xpath->//*[@id="dateStock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[4]'
        )  #星期4
        self.dr.sleep(1)
        self.dr.click(
            'xpath->//*[@id="dateStock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[5]'
        )  #星期5
        self.dr.sleep(1)
        self.dr.click(
            'xpath->//*[@id="dateStock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[6]'
        )  #星期6
        self.dr.sleep(1)
        self.dr.click(
            'xpath->//*[@id="dateStock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[7]'
        )  #星期7
        self.dr.sleep(1)
        self.dr.type('id->marketPrice_1', '100')  #票面价
        # self.dr.type('id->stockNum_1', '100')#每日库存
        self.dr.type('id->sellPrice_1', '100')  #售卖价
        # self.dr.type('id->minimum_1', '100')#最少购买
        # self.dr.type('id->maximum_1', '100')#最多购买

        self.dr.click(
            'xpath->//*[@id="dateStock"]/div[2]/div[4]/input[1]')  #保存
        # self.dr.click('xpath->//*[@id="dateStock"]/div[2]/div[4]/input[2]')#取消
        self.dr.sleep(2)

        # 批量下架
        self.dr.click('id->batchunset')
        self.dr.sleep(3)
        self.dr.click('id->startDate_3')
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(2)
        self.dr.click('id->dpTodayInput')
        self.dr.sleep(2)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)
        self.dr.click(
            'xpath->//*[@id="unstock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[1]/td[2]/div/label[2]'
        )
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(3)
        self.dr.click('id->dpTodayInput')
        self.dr.sleep(2)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        self.dr.click(
            'xpath->//*[@id="unstock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[1]'
        )  #1
        self.dr.click(
            'xpath->//*[@id="unstock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[2]'
        )  #2
        self.dr.click(
            'xpath->//*[@id="unstock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[3]'
        )  #3
        self.dr.click(
            'xpath->//*[@id="unstock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[4]'
        )  #4
        self.dr.click(
            'xpath->//*[@id="unstock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[5]'
        )  #5
        self.dr.click(
            'xpath->//*[@id="unstock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[6]'
        )  #6
        self.dr.click(
            'xpath->//*[@id="unstock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[7]'
        )  #7

        self.dr.click('xpath->//*[@id="unstock"]/div[2]/div[4]/input[1]')  #确定
        # self.dr.click('xpath->//*[@id="unstock"]/div[2]/div[4]/input[2]')#取消
        self.dr.sleep(2)

        #全部下架
        self.dr.click('id->clearall')

        #商品调价
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[19]/td/label[1]'
        )  #是
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[19]/td/label[2]'
        )  #否

        #退款设置
        #可以退款(默认)
        self.dr.click('name->canRefund')
        #列表1:
        self.dr.click('name->partRefund')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[21]/td/label[1]/select[1]/option[1]'
        )
        #列表2:
        self.dr.click('id->refundChargeType')
        self.dr.sleep(2)
        self.dr.click('xpath->//*[@id="refundChargeType"]/option[1]')
        #输入:
        self.dr.clear_type('id->refundCharge', '***')
        #不可退款
        # self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[21]/td/label[2]')

        #退款审核(退款设置为不可退款时,不存在此项)
        self.dr.click('xpath->//*[@id="refundAudit"]/td/label[1]')  #需要审核
        self.dr.click('xpath->//*[@id="refundAudit"]/td/label[2]')  #不需要审核

        #退款说明 *
        self.dr.type('name->refundInfo', '***')

        #费用包含 *
        self.dr.type('name->feeInfo', '***')

        #费用不含
        self.dr.type('name->feeExclude', '***')

        #使用说明 *
        self.dr.type('name->remind', '***')

        #保存
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[2]/tbody/tr/td/input[1]')
示例#12
0
    def test_login_page(self):
        """ login """
        #************************** login ************************
        page = login_page.IndexPage(self.dr)
        page.into_page('http://192.168.0.65:8010/')
        page.input_username_key('admin')
        page.input_password_key('123456')
        page.click_button()
        time.sleep(7)
        self.assertEqual(u'旅游公共信息服务平台', page.return_title())

        #************************** porject ***********************
        self.dr.click('id->systemName')
        time.sleep(1)

        self.dr.click('xpath->/html/body/div[1]/ul/li[2]/ul/li[7]')
        time.sleep(3)

        self.dr.click('id->790')  #产品管理
        time.sleep(2)

        self.dr.click('id->798')  #团购
        time.sleep(3)

        #************************ 切换frame **********************
        self.dr.switch_to_frame('id->indIframe')
        time.sleep(3)

        #************************* before check ********************
        text_before = self.dr.get_text(
            'xpath->//*[@id="listForm"]/div[4]')  #获取当前页面条数显示信息
        print text_before

        #************************** actions ************************
        self.dr.click('xpath->//*[@id="listForm"]/div[2]/a[1]')  #点击添加
        self.dr.sleep(3)

        #商品名称 *
        self.dr.type('name->name', '***')

        #推荐理由
        self.dr.type('name->reason', '***')

        #服务特色 *
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[4]/td/span/label'
        )  #随时退
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[4]/td/span/span')

        #商品图片 *
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/div/div[2]/ul/li/div/a'
        )
        self.dr.sleep(3)
        os.system('D:\WinClick4.exe')
        self.dr.sleep(3)

        #商品封面图
        self.dr.click('id->logoUploadBox_1_1')
        self.dr.sleep(3)
        os.system('D:\WinClick4.exe')
        self.dr.sleep(3)

        #商户
        self.dr.click('id->supplierName')
        self.dr.sleep(2)
        self.dr.click('xpath->/html/body/div[6]/div[2]/table/tbody/tr[1]')
        self.dr.sleep(2)

        #验票人
        # self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[8]/td/label')

        self.dr.click('id->selectCheckTicketMember')
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->/html/body/div[9]/div[3]/div/iframe')
        self.dr.sleep(3)
        self.dr.click('id->selectAll')
        self.dr.sleep(2)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)
        self.dr.click('xpath->/html/body/div[9]/div[4]/input[1]')
        self.dr.sleep(2)

        #销售渠道
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[1]/label[1]'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[1]/label[2]'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[1]/label[3]'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[1]/label[4]'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[1]/label[5]'
        )

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[2]')

        #取消设置
        self.dr.type('name->autoCancelTime', '***')

        #联系人信息
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[12]/td/label[3]')

        #客人信息
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[13]/th/label')

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[13]/td/span/label[1]'
        )  #默认
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[13]/td/span/label[2]'
        )  #不需要

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[13]/td/div/label[1]'
        )  #姓名
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[13]/td/div/label[2]'
        )  #拼音
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[13]/td/div/label[3]'
        )  #手机

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[13]/td/div/label[4]'
        )  #身份证
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[13]/td/div/label[5]'
        )  #护照
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[13]/td/div/label[6]'
        )  #台胞证
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[13]/td/div/label[7]'
        )  #港澳通行证

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[13]/td/div/label[8]/input[1]'
        )
        self.dr.type(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[13]/td/div/label[8]/input[2]',
            '***')

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[13]/td/div/label[9]/input[1]'
        )
        self.dr.type(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[13]/td/div/label[9]/input[2]',
            '***')

        #预订限制
        # self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[14]/td/label[1]')#默认

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[14]/td/label[2]/input[1]'
        )
        self.dr.type(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[14]/td/label[2]/input[2]',
            '***')
        self.dr.click('name->enterSightAdvanceHour')
        self.dr.sleep(2)
        self.dr.click('xpath->//*[@id="ADVANCE_BOOK_TIME"]/option[1]')
        self.dr.click('name->enterSightAdvanceMinute')
        self.dr.sleep(2)
        self.dr.click('xpath->//*[@id="ADVANCE_BOOK_TIME"]/option[1]')

        #生效时间
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[15]/th/label')

        self.dr.type('name->enterSightDelayBookHour', '***')

        #手机限制
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[16]/th/label')

        self.dr.click('name->limitTimeType_MOBILE')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[16]/td/select[1]/option[1]'
        )
        self.dr.sleep(2)
        self.dr.click('name->limitTimeNum_MOBILE')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[16]/td/select[2]/option[1]'
        )
        self.dr.sleep(2)
        self.dr.type('name->limitAmountNum_MOBILE', '***')

        #身份证限制
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[17]/th/label')

        self.dr.click('name->limitTimeType_IDCARD')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[17]/td/select[1]/option[1]'
        )
        self.dr.sleep(2)
        self.dr.click('name->limitTimeNum_IDCARD')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[17]/td/select[2]/option[1]'
        )
        self.dr.sleep(2)
        self.dr.type('name->limitAmountNum_IDCARD', '***')

        #出售时间 *
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[18]/td/label[1]')

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[18]/td/label[2]/input[1]'
        )
        self.dr.click('id->saleStartTime')
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(2)
        self.dr.click('xpath->/html/body/div/div[6]/input[2]')
        self.dr.sleep(2)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[18]/td/label[2]/input[3]'
        )
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(3)
        self.dr.click('id->dpTodayInput')
        self.dr.sleep(3)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        #短信模板 *
        self.dr.click('id->smsThemeId')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[19]/td/div/ul/li[1]'
        )

        # self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[19]/td/a')

        #价格库存模式 *
        # self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[21]/td/label[1]')

        # self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[21]/td/label[2]')

        #验证消费日期 *
        self.dr.click('xpath->//*[@id="consumeAuthen"]/td/label[1]/label')

        self.dr.click('xpath->//*[@id="consumeAuthen"]/td/label[2]/label')
        self.dr.click('id->consumeStartDate')
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->/html/body/div[7]/iframe')
        self.dr.sleep(2)
        self.dr.click('id->dpTodayInput')
        self.dr.sleep(2)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)
        self.dr.click('id->consumeEndDate')
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(3)
        self.dr.click('id->dpTodayInput')
        self.dr.sleep(2)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[18]/td/label[3]')

        #价格库存 *
        #批量上架
        self.dr.click('id->batchset')
        self.dr.sleep(2)
        self.dr.click('id->startDate_1')
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(2)
        self.dr.click('id->dpTodayInput')
        self.dr.sleep(3)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)
        self.dr.click('id->endDate_1')
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(3)
        self.dr.click('id->dpTodayInput')
        self.dr.sleep(3)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        self.dr.click(
            'xpath->//*[@id="dateStock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[1]'
        )  #星期1
        self.dr.click(
            'xpath->//*[@id="dateStock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[2]'
        )  #星期2
        self.dr.click(
            'xpath->//*[@id="dateStock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[3]'
        )  #星期3
        self.dr.click(
            'xpath->//*[@id="dateStock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[4]'
        )  #星期4
        self.dr.click(
            'xpath->//*[@id="dateStock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[5]'
        )  #星期5
        self.dr.click(
            'xpath->//*[@id="dateStock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[6]'
        )  #星期6
        self.dr.click(
            'xpath->//*[@id="dateStock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[7]'
        )  #星期7

        self.dr.type('id->marketPrice_1', '100')  #票面价
        self.dr.type('id->stockNum_1', '100')  #每日库存
        self.dr.type('id->sellPrice_1', '100')  #售卖价
        self.dr.type('id->minimum_1', '100')  #最少购买
        self.dr.type('id->maximum_1', '100')  #最多购买

        self.dr.click(
            'xpath->//*[@id="dateStock"]/div[2]/div[4]/input[1]')  #保存
        # self.dr.click('xpath->//*[@id="dateStock"]/div[2]/div[4]/input[2]')#取消
        self.dr.sleep(2)
        # 批量下架
        self.dr.click('id->batchunset')
        self.dr.sleep(3)
        self.dr.click('id->startDate_3')
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(2)
        self.dr.click('id->dpTodayInput')
        self.dr.sleep(2)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)
        self.dr.click(
            'xpath->//*[@id="unstock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[1]/td[2]/div/label[2]'
        )
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(3)
        self.dr.click('id->dpTodayInput')
        self.dr.sleep(2)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        self.dr.click(
            'xpath->//*[@id="unstock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[1]'
        )  #1
        self.dr.click(
            'xpath->//*[@id="unstock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[2]'
        )  #2
        self.dr.click(
            'xpath->//*[@id="unstock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[3]'
        )  #3
        self.dr.click(
            'xpath->//*[@id="unstock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[4]'
        )  #4
        self.dr.click(
            'xpath->//*[@id="unstock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[5]'
        )  #5
        self.dr.click(
            'xpath->//*[@id="unstock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[6]'
        )  #6
        self.dr.click(
            'xpath->//*[@id="unstock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[7]'
        )  #7

        self.dr.click('xpath->//*[@id="unstock"]/div[2]/div[4]/input[1]')  #确定
        # self.dr.click('xpath->//*[@id="unstock"]/div[2]/div[4]/input[2]')#取消
        self.dr.sleep(2)
        #全部下架
        self.dr.click('id->clearall')

        #商品调价
        # self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[25]/td/label[1]')

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[25]/td/label[2]')

        #退款设置
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[27]/td/label[1]/input[1]'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[27]/td/label[1]/select[1]'
        )
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[27]/td/label[1]/select[1]/option[1]'
        )
        self.dr.sleep(2)
        self.dr.click('id->refundChargeType')
        self.dr.sleep(2)
        self.dr.type('id->refundCharge', '***')

        # self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[27]/td/label[2]')

        #退款审核
        self.dr.click('xpath->//*[@id="refundAudit"]/td/label[1]')

        self.dr.click('xpath->//*[@id="refundAudit"]/td/label[2]')

        #退款说明 *
        self.dr.type('name->refundInfo', '***')

        #所属商家 * (类型:餐饮,旅游,生活。。选择不同显示选项不同。此为旅游)
        self.dr.click('id->businessOfTeamName')
        self.dr.sleep(3)
        self.dr.click('xpath->//html/body/div[5]/div[2]/table/tbody/tr[7]')
        self.dr.sleep(3)

        # self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[31]/td/a')#添加商家

        #所属分类 *
        #根据商家

        #商品头图
        self.dr.click('xpath->//*[@id="headImage"]/td/div/div/ul/li/div/a')
        self.dr.sleep(3)
        os.system('D:\WinClick4.exe')  #********
        self.dr.sleep(3)

        #性别
        # self.dr.click('xpath->//*[@id="sex"]/td/label[1]')

        self.dr.click('xpath->//*[@id="sex"]/td/label[2]')

        #相关证件号
        self.dr.type('name->certificate', '***')

        #特色服务
        self.dr.sleep(2)
        self.dr.switch_to_frame(
            'xpath->//*[@id="specialty"]/td/div/div[2]/iframe')
        self.dr.sleep(3)
        self.dr.type('xpath->/html/body', '***')
        self.dr.sleep(2)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        #费用说明
        self.dr.sleep(2)
        self.dr.switch_to_frame(
            'xpath->//*[@id="feeInfo"]/td/div/div[2]/iframe')
        self.dr.sleep(3)
        self.dr.type('xpath->/html/body', '***')
        self.dr.sleep(2)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        #温馨提示
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="memo"]/td/div/div[2]/iframe')
        self.dr.sleep(3)
        self.dr.type('xpath->/html/body', '***')
        self.dr.sleep(2)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        #套餐详情
        self.dr.switch_to_frame(
            'xpath->//*[@id="detail"]/td/div/div[2]/iframe')
        self.dr.sleep(3)
        self.dr.type('xpath->/html/body', '***')
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        #保存
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[2]/tbody/tr/td/input[1]')
    def test_login_page(self):
        """ login """
        #************************** login ************************
        page = login_page.IndexPage(self.dr)
        page.into_page('http://192.168.0.65:8010/')
        page.input_username_key('admin')
        page.input_password_key('123456')
        page.click_button()
        time.sleep(7)
        self.assertEqual(u'旅游公共信息服务平台', page.return_title())

        #************************** porject ***********************
        self.dr.click('id->systemName')
        time.sleep(1)

        self.dr.click('xpath->/html/body/div[1]/ul/li[2]/ul/li[7]')
        time.sleep(3)

        self.dr.click('id->790')  #产品管理
        time.sleep(2)

        self.dr.click('id->794')  #酒店1.0
        time.sleep(3)

        #************************ 切换frame **********************
        self.dr.switch_to_frame('id->indIframe')
        time.sleep(3)

        #************************* before check ********************
        text_before = self.dr.get_text(
            'xpath->//*[@id="listForm"]/div[4]')  #获取当前页面条数显示信息
        print text_before

        #************************** actions ************************
        self.dr.click('xpath->//*[@id="listForm"]/div[2]/a[1]')  #点击添加
        self.dr.sleep(3)

        #选择酒店 *
        self.dr.click('id->companyName')  #打开列表
        self.dr.sleep(2)
        self.dr.click(
            'xpath->/html/body/div[5]/div[2]/table/tbody/tr[1]')  #第一个

        #选择房型 *
        self.dr.click('id->companyType')
        self.dr.sleep(2)
        self.dr.click('xpath->//*[@id="companyType"]/option')  #选择第一个 ,有效数据
        # 新增
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/a')  #点击 新增

        #产品名称 * (2/60字)
        self.dr.type('name->name', '*****')  # * :输入数据

        #是否含早
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/label[1]'
        )  # 无
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/label[2]'
        )  # 含早
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/label[3]'
        )  # 含双早
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/label[4]'
        )  # 含三早
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/label[5]'
        )  # 有(收费)

        #商户
        self.dr.click('id->supplierName')  #打开列表
        self.dr.sleep(2)
        self.dr.click(
            'xpath->/html/body/div[6]/div[2]/table/tbody/tr[1]')  #选择 第一个
        self.dr.type('xpath->/html/body/div[6]/div[1]/input',
                     '*******')  #"请输入商户账号" * :账号
        self.dr.click('xpath->/html/body/div[6]/div[1]/a')  #搜索键
        self.dr.click('xpath->/html/body/div[6]/div[1]/button')  #清空键

        #验票人 *
        self.dr.click('name->isSupplierCheck')  #商户可验票
        #其他验票人
        self.dr.click('id->selectCheckTicketMember')
        #切frame
        self.dr.switch_to_frame('id->browserFrame15350796781108236')
        self.dr.sleep(3)
        self.dr.click('id->selectAll')  #全选
        self.dr.click('xpath->//*[@id="listTable"]/tbody/tr[2]')  #第一个
        self.dr.click('xpath->/html/body/div[9]/div[4]/input[1]')  #确定
        self.dr.click('xpath->/html/body/div[9]/div[4]/input[2]')  #关闭
        self.dr.type('id->searchValue', '****')  #搜索条件
        self.dr.click('xpath->//*[@id="listForm"]/div[1]/button')  #查询
        #切回frame
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        #商品头图
        self.dr.click('xpath->/html/body/div[8]')
        self.dr.sleep(3)
        os.system('')  #AUTO执行程序
        self.dr.sleep(3)

        #销售渠道
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[1]'
        )  #供销平台
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[2]/label[1]'
        )  #C端 (全选)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[2]/label[2]'
        )  #产品码
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[2]/label[3]'
        )  #商品码
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[2]/label[4]'
        )  #专题码
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[2]/label[5]'
        )  #店铺码
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[3]'
        )  #PC商场

        #取消设置
        self.dr.type('name->autoCancelTime', '*****')

        #联系人信息(默认勾选:手机号,姓名)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[12]/td/label[3]')

        #出售时间
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[13]/td/label[1]'
        )  #立刻上架出售,过期自动下架  (默认勾选)

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[13]/td/label[2]'
        )  #点击设定出售时间
        self.dr.click('id->saleStartTime')  #起始
        self.dr.click('name->saleEndTime')  #截止
        #时间操作
        self.dr.click('id->dpQS')  #切换显示方式
        #常规显示,为6 排 数据,操作按排数来
        self.dr.click('xpath->/html/body/div/div[3]/table/tbody/tr[6]/td[6]'
                      )  #有效时间:第五排,第六个,星期五
        self.dr.click('id->dpClearInput')  #清空
        self.dr.click('id->dpTodayInput')  #今天
        self.dr.click('id->dpOkInput')  #确定

        #短信模板 *
        self.dr.click('id->smsThemeId')  #打开列表
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[14]/td/div/ul/li[1]'
        )  #第一个选项
        #新增模板
        self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[14]/td/a')

        #价格库存
        #批量操作
        self.dr.click('id->batchset')  #批量上架
        #弹窗
        self.dr.click('id->startDate_1')  #起始
        #时间操作同上:140-144
        self.dr.click('id->endDate_1')  #截止
        # 时间操作同上:140-144
        self.dr.click(
            'xpath->//*[@id="dateStock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[1]'
        )  #星期一  input[2]:星期二 依次类推

        self.dr.type('id->marketPrice_1', '***')  #票面价 *
        self.dr.type('id->stockNum_1', '***')  #每日库存 *
        self.dr.type('id->sellPrice_1', '***')  #售卖价 *
        self.dr.type('id->minimum_1', '***')  #最少购买 *
        self.dr.type('id->maximum_1', '***')  #最多购买 * (不可小于最少购买)

        self.dr.click('id->batchunset')  #批量下架
        #弹窗
        self.dr.click('id->startDate_3')  #起始
        #见140-144
        self.dr.click('id->endDate_3')  #截止
        # 见140-144
        #星期 :见161
        self.dr.click('xpath->//*[@id="unstock"]/div[2]/div[4]/input[1]')
        self.dr.click('xpath->//*[@id="unstock"]/div[2]/div[4]/input[2]')

        self.dr.click('id->clearall')  #全部下架

        #商品调价
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[17]/td/label[1]'
        )  #是(默认)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[17]/td/label[2]'
        )  #否

        #退款设置
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[19]/td/label[1]'
        )  #可以退款(默认)
        self.dr.click('name->partRefund')  #打开第一个列表
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[19]/td/label[1]/select[1]/option[1]'
        )  #第一个选项:可以部分退.  option[2]:

        self.dr.click('id->refundChargeType')  #第二个列表
        self.dr.click('xpath->//*[@id="refundChargeType"]/option[1]')  #第一个选项

        self.dr.type('id->refundCharge', '***')  #输入

        #不可退款
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[19]/td/label[2]'
        )  #选择不可退款,退款审核将会消失

        #退款审核(条件:退款设置为可以退款)
        self.dr.click('xpath->//*[@id="refundAudit"]/td/label[1]')  #需要审核
        self.dr.click('xpath->//*[@id="refundAudit"]/td/label[2]')  #不需要审核(默认)

        #退款说明 *
        self.dr.type('name->refundInfo', '***')

        #费用说明 *
        self.dr.type('name->feeInfo', '****')

        #费用不含
        self.dr.type('name->feeExclude', '***')

        #使用说明 *
        self.dr.type('name->remind', '***')

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[2]/tbody/tr/td/input[1]')  #保存
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[2]/tbody/tr/td/input[2]')  #返回

        #************************ check after ************************
        pass
示例#14
0
    def test_login_page(self):
        """ login """
        #************************** login ************************
        page = login_page.IndexPage(self.dr)
        page.into_page()
        page.input_username_key('')
        page.input_password_key('')
        page.input_code_key('')
        page.click_button()
        time.sleep(7)
        self.assertEqual(u'', page.return_title())

        #************************** porject ***********************
        self.dr.click('id->')
        time.sleep(1)

        self.dr.click('xpath->')
        time.sleep(3)

        self.dr.click('id->')
        time.sleep(2)

        #************************ 切换frame **********************
        self.dr.switch_to_frame('id->')
        time.sleep(3)

        #************************* before check ********************
        #TODO

        #************************** actions ************************
        #actions:查询,重置,添加,编辑,上架,下架,复制,开启PC商场销售,关闭PC商场销售,开启微商城销售,关闭微商城销售,设置验票人,批量同步分销商品
        self.dr.click('xpath->//*[@id="listForm"]/div[2]/a[1]')  #添加
        self.dr.click('xpath->//*[@id="listForm"]/div[2]/a[2]')  #编辑
        self.dr.click('id->shelvesButton')  #上架
        self.dr.click('id->underButton')  #下架
        self.dr.click('id->copyButton')  #复制
        self.dr.click('id->openPc')  #开启PC商场销售
        self.dr.click('id->closedPc')  #关闭PC商场销售
        self.dr.click('id->openB2c')  #开启微商城销售
        self.dr.click('id->closedB2c')  #关闭微商城销售
        self.dr.click('id->selectCheckTicketMember')  #设置验票人
        self.dr.click('xpath->//*[@id="listForm"]/div[2]/a[11]')  #批量同步分销商品

        #搜索:
        self.dr.type('name->productName', '******')  #景区名称/商品名称
        self.dr.type('name->productSn')  #商品ID
        self.dr.type('name->areaName')  #所在区域
        self.dr.type('name->supplierName')  #商户名称/账号

        self.dr.click('xpath->//*[@id="listForm"]/div[1]/p/select[1]')  #销售渠道
        time.sleep(2)
        self.dr.click('xpath->//*[@id="listForm"]/div[1]/p/select[1]/option[2]'
                      )  #第二个选项:微商城

        self.dr.click('xpath->//*[@id="listForm"]/div[1]/p/select[2]')  #是否上架
        time.sleep(2)
        self.dr.click('xpath->//*[@id="listForm"]/div[1]/p/select[2]/option[2]'
                      )  #第二选项,已上架

        self.dr.click('xpath->//*[@id="listForm"]/div[1]/p/button[1]')  #查询
        self.dr.click('xpath->//*[@id="listForm"]/div[1]/p/button[2]')  #重置

        #设置页面显示数:
        self.dr.click('name->pageSize')
        time.sleep(2)
        self.dr.click('xpath->//*[@id="pageSize"]/option[2]')  #第二个选项:20条/页

        #指定页:
        self.dr.type('id->pageNumber', '****')  #第**页

        #上一页,下一页,
        self.dr.click('xpath->//*[@id="listForm"]/div[4]/span/span[1]')  #首页
        self.dr.click('xpath->//*[@id="listForm"]/div[4]/span/span[2]')  #上一页
        self.dr.click('xpath->//*[@id="listForm"]/div[4]/span/span[3]')  #1
        #后面的参数存在变化

        #全选
        self.dr.click('id->selectAll')

        #获取信息:[产品名],所在区域,销售渠道,今日售价,商户名称(账号),是否上架,创建日期,操作
        self.dr.click('xpath->//*[@id="listTable"]/tbody/tr[2]/td[1]')  #勾选
        #tr[2]:表示面板列表,第一个门票信息,第一个是信息栏
        #td[1]:表示该信息的第几个字段:
        self.dr.click(
            'xpath->//*[@id="listTable"]/tbody/tr[2]/td[9]/a')  #操作:下单

        #上传文件
        #同上传图片一样处理

        #上传图片
        #上传图片,正常上传
        self.dr.click('id->')  #点击上传button
        time.sleep(2)
        #1:本地上传
        value = 'AUTO.exe (执行文件),内容为图片流'
        os.system(value)
        time.sleep(3)
        #2:选择
        self.dr.click('')  #选择目标
        time.sleep(2)
        self.dr.click('')  #点击确认
        time.sleep(3)
        try:
            self.dr.get_element('')  #此处为图片名
        except:
            raise SystemError

        #上传图片,选择不支持格式的图片
        self.dr.click('id->')  #点击上传button
        time.sleep(2)
        value = 'AUTO.exe (执行文件),内容为非图片流,路径'
        os.system(value)
        time.sleep(3)
        try:
            self.dr.get_element('')  #此处为图片名
            #1:如果该次操作为第一次操作,则此处为报错

            #2:如果该次操作为第二次操作,则此处为上次的信息
        except:
            raise SystemError

        #上传图片,再次上传图片
        self.dr.click('id->')
        time.sleep(2)
        value = 'AUTO.exe (执行文件),内容为图片流'
        os.system(value)
        time.sleep(3)
        self.dr.click('id->')
        time.sleep(2)
        value = 'AUTO_1.exe (执行文件),内容为图片流'
        os.system(value)
        time.sleep(3)

        #新增功能
        #单独作为处理

        #修改(受限于账号权限,不同账户管理不同信息,拥有归属关系才可被操作)
        self.dr.type('name->supplierName', 'admin')  #搜索拥有‘账号admin’的信息
        time.sleep(1)
        self.dr.click('xpath->//*[@id="listForm"]/div[1]/p/button[1]')  #查询
        time.sleep(2)
        text = self.dr.get_text(
            'xpath->//*[@id="listForm"]/div[4]')  #获取‘共 * 条记录’判断是否拥有归属关系
        # print text
        text_code = text.encode('utf-8')  #转换
        # print text_code
        list = text_code.split(' ')[
            1]  #提取 “ * ” * >= 3 即为存在两个。* = 2 需检查其他元素条件 * = 1 为提示栏
        print list

        A = int(list) + 1
        for i in range(1, A):
            xpath = '//*[@id="listTable"]/tbody/tr[' + str(i) + ']'

            text_1 = self.dr.get_text(
                'xpath->//*[@id="listTable"]/tbody/tr[2]/td[6]/span')
示例#15
0
    def test_login_page(self):
        """ login """
        #************************** login ************************
        page = login_page.IndexPage(self.dr)
        page.into_page('http://192.168.0.65:8010/')
        page.input_username_key('admin')
        page.input_password_key('123456')
        page.click_button()
        time.sleep(7)
        self.assertEqual(u'旅游公共信息服务平台', page.return_title())

        #************************** porject ***********************
        self.dr.click('id->systemName')
        time.sleep(1)

        #1:
        # self.dr.click('xpath->/html/body/div[1]/ul/li[2]/ul/li[7]')
        # time.sleep(3)
        #2:
        a = '电商运营子系统'
        for i in range(10):
            path = 'xpath->/html/body/div[1]/ul/li[2]/ul/li[' + str(i) + ']'
            try:
                text = self.dr.get_text(path)
                text_1 = text[2:]
                text_code = text_1.encode('utf-8')
                if text_code == a:
                    self.dr.click(path)
                    break
            except:
                pass

        self.dr.click('id->790')  #产品管理
        time.sleep(2)

        self.dr.click('id->792')  #门票
        time.sleep(3)

        #************************ 切换frame **********************
        self.dr.switch_to_frame('id->indIframe')
        time.sleep(3)

        #************************* before check ********************
        #必填项:选择景区,选择票型,产品名称,服务特色,验票人,出售时间,兑换凭证,入园方式
        #入园地址,短信模板,价格库存模式,验证消费日期,价格库存,退款说明,费用包含,使用说明
        fake = Factory.create("zh_CN")

        #************************** actions ************************
        self.dr.click('xpath->//*[@id="listForm"]/div[2]/a[1]')
        time.sleep(2)

        # 选择景区
        self.dr.click('id->companyName')
        time.sleep(1)
        self.dr.click(
            'xpath->/html/body/div[5]/div[2]/table/tbody/tr[1]')  #选择景区
        time.sleep(1)
        #验证点击后框体是否消失
        try:
            element = self.dr.get_element(
                'xpath->/html/body/div[5]/div[2]/table/tbody/tr[1]')
            if element is None:
                pass
            else:
                raise IOError
        except:
            pass

        # 选择票型
        self.dr.click('id->companyType')
        time.sleep(2)
        self.dr.click('xpath->//*[@id="companyType"]/option[2]')  #选择票型
        time.sleep(1)

        # 产品名称(2-60字)
        # name = ramdon.ramdondata(61)
        self.dr.type('name->name', '1')  #最短-1
        # self.dr.type('name->name', name)    #最长+1
        #验证1:当前验证
        #验证2:需保存后,验证

        # 服务特色(可多选)(单次点击是选中,二次点击是取消)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/span/label'
        )  #随时退
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/span/span'
        )  #秒发码

        # 验票人
        self.dr.click('id->selectCheckTicketMember')  #其他验票人
        time.sleep(2)
        self.dr.click(
            'xpath->//*[@id="listTable"]/tbody/tr[2]')  #选择验票人(1)  单次为选中,二次为取消
        time.sleep(1)
        self.dr.click('xpath->//*[@id="listTable"]/tbody/tr[3]')  #选择验票人(2)
        time.sleep(1)
        # 出售时间 3个选项
        #1:默认
        #2: click-input
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[18]/td/label[2]')
        time.sleep(1)
        self.dr.click('id->saleStartTime')
        time.sleep(1)
        self.dr.click('id->dpTodayInput')  #今天
        time.sleep(2)
        self.dr.click('name->saleEndTime')
        time.sleep(1)
        self.dr.click('id->dpTodayInput')  # 今天
        time.sleep(2)

        # 兑换凭证  4个选项
        #1:默认       确认短信
        #2:
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[20]/td/label[2]'
        )  #身份证
        #3:
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[20]/td/label[3]'
        )  #短信和身份证
        #4:
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[20]/td/label[4]'
        )  #电子邮件确认单

        # 入园方式  2个选项
        #1:默认
        #2:
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[21]/td/label[2]')
        time.sleep(1)
        self.dr.type('name->pickupAddress', fake.address())  #地址
        time.sleep(1)
        self.dr.type('name->pickupTime', fake.date(pattern="%Y-%m-%d"))  #时间

        # 入园地址
        self.dr.type('name->passAddress', fake.address())

        # 短信模板
        self.dr.click('id->smsThemeId')
        time.sleep(1)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[23]/td/div/ul/li')
        time.sleep(2)

        #价格库存
        # 价格库存模式  2个选项  选项不同,要求所填内容不同。 先为默认模式
        #1:默认       日历价格库存模式
        # 验证消费日期
        #1:默认
        #2:
        self.dr.click('xpath->//*[@id="consumeAuthen"]/td/label[2]')
        time.sleep(1)
        self.dr.click('name->beforeDay')
        time.sleep(1)
        self.dr.click(
            'xpath->//*[@id="consumeAuthen"]/td/label[2]/select[1]/option[3]')
        time.sleep(1)
        self.dr.click('name->afterDay')
        time.sleep(1)
        self.dr.click(
            'xpath->//*[@id="consumeAuthen"]/td/label[2]/select[2]/option[3]')
        time.sleep(1)

        # 价格库存
        self.dr.click('id->batchset')  #批量上架
        time.sleep(2)
        self.dr.click('id->startDate_1')  #时间段:开始时间
        time.sleep(2)
        self.dr.click('id->dpTodayInput')  #今天
        time.sleep(2)
        self.dr.click('id->endDate_1')  #时间段:结束时间
        time.sleep(2)
        self.dr.click('id->dpTodayInput')  #今天
        time.sleep(2)
        self.dr.type('id->marketPrice_1', '100')  #票面价
        time.sleep(1)
        self.dr.type('id->stockNum_1', '100')  #每日库存
        time.sleep(1)
        self.dr.type('id->sellPrice_1', '100')  #售卖价
        time.sleep(1)
        self.dr.type('id->minimum_1', '100')  #最少购买
        time.sleep(1)
        self.dr.type('id->maximum_1', '100')  #最多购买
        time.sleep(1)
        self.dr.click('xpath->//*[@id="dateStock"]/div[2]/div[4]/input[1]')

        #批量下架:
        self.dr.click('id->batchunset')
        time.sleep(2)
        self.dr.click('id->startDate_3')  #时间段:开始时间
        time.sleep(2)
        self.dr.click('id->dpTodayInput')  #今天
        time.sleep(2)
        self.dr.click('id->endDate_3')  #时间段:结束时间
        time.sleep(2)
        self.dr.click('id->dpTodayInput')  #今天
        time.sleep(2)
        #星期:默认全选,选中即取消
        self.dr.click(
            'xpath->//*[@id="unstock"]/div[2]/div[3]/div/div[2]/table/tbody/tr[2]/td[2]/div/input[1]'
        )
        #确定
        self.dr.click('xpath->//*[@id="unstock"]/div[2]/div[4]/input[1]')
        #全部下架:
        self.dr.click('id->clearall')

        # 退款说明
        self.dr.type('id->refundInfo',
                     fake.text(max_nb_chars=200, ext_word_list=None))

        # 费用包含
        self.dr.type('id->feeInfo',
                     fake.text(max_nb_chars=200, ext_word_list=None))

        # 使用说明
        self.dr.switch_to_frame(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[43]/td/div/div[2]/iframe'
        )  #iframe
        time.sleep(3)
        self.dr.type('xpath->/html/body',
                     fake.text(max_nb_chars=200, ext_word_list=None))
        #回到原frame
        self.dr.switch_to_frame_out()
        time.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        time.sleep(3)

        #价格库存:第二种:总库存模式

        #验证消费日期: 3个选项

        #价格库存
        self.dr.click('id->modifyprice')  #编辑价格
        time.sleep(2)
示例#16
0
    def test_login_page(self):
        """ login """
        #************************** login ************************
        page = login_page.IndexPage(self.dr)
        page.into_page('http://192.168.0.65:8010/')
        page.input_username_key('admin')
        page.input_password_key('123456')
        page.click_button()
        time.sleep(7)
        self.assertEqual(u'旅游公共信息服务平台', page.return_title())

        #************************** porject ***********************
        self.dr.click('id->systemName')
        time.sleep(1)

        self.dr.click('xpath->/html/body/div[1]/ul/li[2]/ul/li[7]')
        time.sleep(3)

        self.dr.click('id->790')  #产品管理
        time.sleep(2)

        self.dr.click('id->792')  #门票
        time.sleep(3)

        #************************ 切换frame **********************
        self.dr.switch_to_frame('id->indIframe')
        time.sleep(3)

        #************************* before check ********************
        text_before = self.dr.get_text('xpath->//*[@id="listForm"]/div[4]')

        #************************** actions ************************
        self.dr.click('xpath->//*[@id="listForm"]/div[2]/a[1]')  #点击添加
        time.sleep(2)

        #基本信息
        self.dr.click('id->companyName')
        time.sleep(1)
        self.dr.click(
            'xpath->/html/body/div[5]/div[2]/table/tbody/tr[1]')  #选择景区
        time.sleep(1)

        self.dr.click('id->companyType')
        time.sleep(2)
        self.dr.click('xpath->//*[@id="companyType"]/option[2]')  #选择票型
        time.sleep(1)

        self.dr.type('name->name', '123321')  #产品名称

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/span/label'
        )  #服务特色

        self.dr.click('id->appkeyType')
        time.sleep(2)
        self.dr.click('xpath->//*[@id="appkeyType"]/option[2]')
        time.sleep(1)
        self.dr.type('name->outSn', '123')  #对接接口

        self.dr.click('id->supplierName')
        time.sleep(2)
        self.dr.click('xpath->/html/body/div[6]/div[2]/table/tbody/tr[1]')  #商户
        time.sleep(1)

        self.dr.click('id->selectCheckTicketMember')  #其他验票人
        time.sleep(2)
        self.dr.click('xpath->//*[@id="listTable"]/tbody/tr[2]')  #验票人
        time.sleep(1)

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/div/div[2]/ul/li/div/a'
        )
        time.sleep(2)
        os.system('D:\WinClick4.exe')  #商品头图
        time.sleep(2)

        self.dr.click("id->logoUploadBox_1_1")
        time.sleep(2)
        os.system('D:\WinClick4.exe')  #商品封面图
        time.sleep(2)

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[11]/td/label[1]/label[1]'
        )  #销售渠道
        time.sleep(1)

        #预订设置
        self.dr.type('name->autoCancelTime', '3')  #取消设置

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[14]/td/label[3]'
        )  #联系人信息   【3】:拼音

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[15]/th/label'
        )  #客人信息

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[16]/td/label[2]/label'
        )  #时间限制

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[17]/th/label/label'
        )  #手机限制

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[18]/th/label/label'
        )  #身份证限制

        self.dr.click('name->displayWay')  #出售时间 *

        #入园设置
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[21]/td/label[2]'
        )  #兑换凭证 *

        self.dr.click('name->passType')  #入园方式 *

        self.dr.type('name->passAddress', '*******')  #入园地址 *

        self.dr.click('id->smsThemeId')
        time.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[24]/td/div/ul/li[1]'
        )  #短信模板
        time.sleep(2)

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[25]/td/label[2]'
        )  #入园次数

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[26]/td/label[2]'
        )  #入园人数

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[27]/th/label'
        )  #入园时间限制
        time.sleep(2)
        self.dr.type('name->enterSightDelayBookHour', '1')  #小时
        time.sleep(1)
        self.dr.type('name->enterSightDelayBookMinute', '1')  #分钟

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[28]/th/label'
        )  #入园时间
        time.sleep(1)
        self.dr.type('name->useTimeRangeStart', '18:00')  #前
        time.sleep(1)
        self.dr.type('name->useTimeRangeEnd', '18:30')  #后

        #价格库存
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[30]/td/label[1]'
        )  #价格库存模式  1;日历模式  2:总库存模式
        # self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[30]/td/label[2]')

        #验证消费日期
        self.dr.click('xpath->//*[@id="consumeAuthen"]/td/label[1]')

        #价格库存
        #TODO

        #商品调价
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[34]/td/label[2]')

        #退款信息
        #退狂设置
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[36]/td/label[1]'
        )  #可以退款

        #退款审核
        self.dr.click('xpath->//*[@id="refundAudit"]/td/label[1]')  #需要审核

        #退款日期
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[38]/td/label[1]'
        )  #限制

        #退款说明
        self.dr.type('name->refundInfo', '*************')

        #产品说明
        #费用包含
        self.dr.type('name->feeInfo', '************')

        #费用不含
        self.dr.type('name->feeExclude', '**********')

        #使用说明
        self.dr.switch_to_frame(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[43]/td/div/div[2]/iframe'
        )  #iframe
        time.sleep(3)
        self.dr.type('xpath->/html/body', '************')

        self.dr.switch_to_frame_out()
        time.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        time.sleep(3)

        #保存/返回
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[2]/tbody/tr/td/input[1]')

        #************************ check after ************************
        text = self.dr.get_element('xpath->//*[@id="listForm"]/div[4]')
        if text != None:
            text_after = text.text
            if text_after == text_before:
                pass
            else:
                raise SyntaxWarning
        else:
            raise SystemError
    def test_login_page(self):
        """ login """
        #************************** login ************************
        page = login_page.IndexPage(self.dr)
        page.into_page('http://192.168.0.65:8010/')
        page.input_username_key('admin')
        page.input_password_key('123456')
        page.click_button()
        time.sleep(7)
        self.assertEqual(u'旅游公共信息服务平台', page.return_title())

        #************************** porject ***********************
        self.dr.click('id->systemName')
        time.sleep(1)

        self.dr.click('xpath->/html/body/div[1]/ul/li[2]/ul/li[7]')
        time.sleep(3)

        self.dr.click('id->790')  #产品管理
        time.sleep(2)

        self.dr.click('id->892')  #租车
        time.sleep(3)

        #************************ 切换frame **********************
        self.dr.switch_to_frame('id->indIframe')
        time.sleep(3)

        #************************* before check ********************
        # text_before = self.dr.get_text('xpath->//*[@id="listForm"]/div[4]') #获取当前页面条数显示信息
        # print text_before

        #************************** actions ************************
        self.dr.click('xpath->//*[@id="listForm"]/div[2]/a[1]')  #点击添加
        self.dr.sleep(3)

        #产品名称 *
        self.dr.type('name->name', '***')

        #产品卖点 *
        self.dr.type('name->sellingPoint', '***')

        #出发地 *
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[4]/td/select[1]')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[4]/td/select[1]/option[4]'
        )  #省
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[4]/td/select[2]')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[4]/td/select[2]/option[2]'
        )  #市
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[4]/td/select[3]')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[4]/td/select[3]/option[2]'
        )  #区/县
        self.dr.sleep(2)

        #目的地 *
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/select[1]')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/select[1]/option[4]'
        )  #省
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/select[2]')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/select[2]/option[2]'
        )  #市
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/select[3]')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/select[3]/option[2]'
        )  #区/县
        self.dr.sleep(2)

        #所在地 *
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[6]/td/select[1]')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[6]/td/select[1]/option[4]'
        )
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[6]/td/select[2]')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[6]/td/select[2]/option[2]'
        )
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[6]/td/select[3]')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[6]/td/select[3]/option[2]'
        )
        self.dr.sleep(2)

        #商户
        self.dr.click('id->supplierName')
        self.dr.sleep(2)
        self.dr.click('xpath->/html/body/div[2]/div[2]/table/tbody/tr[1]')
        self.dr.sleep(2)

        #验票人
        # self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[8]/td/label')

        self.dr.click('id->selectCheckTicketMember')
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->/html/body/div[4]/div[3]/div/iframe')
        self.dr.sleep(3)
        self.dr.click('id->selectAll')  #全选
        self.dr.sleep(2)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)
        self.dr.click('xpath->/html/body/div[4]/div[4]/input[1]')  #确定
        # self.dr.click('xpath->/html/body/div[4]/div[4]/input[2]')#关闭
        self.dr.sleep(2)

        #销售渠道
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[1]/label[1]'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[1]/label[2]'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[1]/label[3]'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[1]/label[4]'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[1]/label[5]'
        )

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[2]')

        #车辆图片 *
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[10]/td/div/div[2]/ul/li/div/a'
        )
        self.dr.sleep(2)
        os.system('D:\WinClick2.exe')
        self.dr.sleep(3)

        #商品封面图
        self.dr.click('id->logoUploadBox_1_1')
        self.dr.sleep(3)
        os.system('D:\WinClick2.exe')
        self.dr.sleep(3)

        #取消设置
        self.dr.type('name->autoCancelTime', '***')

        #联系人信息
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[14]/td/label[3]')
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[14]/td/label[4]')
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[14]/td/label[5]')
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[14]/td/label[6]')

        #预订限制
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[15]/td/label[1]')

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[15]/td/label[2]/input[1]'
        )
        self.dr.type('name->enterSightAdvanceDay', '***')
        self.dr.click('name->enterSightAdvanceHour')
        self.dr.sleep(2)
        self.dr.click('xpath->//*[@id="ADVANCE_BOOK_TIME"]/option[1]')
        self.dr.sleep(2)
        self.dr.click('name->enterSightAdvanceMinute')
        self.dr.sleep(2)
        self.dr.click('xpath->//*[@id="ADVANCE_BOOK_TIME"]/option[1]')
        self.dr.sleep(2)

        #短信模板 *
        self.dr.click('id->smsThemeId')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[16]/td/div/ul/li[1]'
        )
        self.dr.sleep(2)

        #车型等级 *
        self.dr.click(
            'xpath->//*[@id="carGrade"]/tbody/tr/td[1]/button')  #选择车型
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="carGrade"]/tbody/tr/td[1]/dl/dd[1]/input[1]'
        )  #4座及以下
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="carGrade"]/tbody/tr/td[1]/dl/dd[2]/button[1]'
        )  #确定
        self.dr.sleep(2)
        self.dr.type('xpath->//*[@id="carGrade"]/tbody/tr/td[2]/input',
                     '***')  #备注

        # self.dr.click('xpath->//*[@id="carGrade"]/tbody/tr/td[3]/button')#删除
        self.dr.sleep(2)

        #套餐设置 *
        # self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[19]/td/div[1]/button')#添加新套餐
        self.dr.type('name->meal_name', '***')  #套餐名称
        self.dr.type('name->sale_price', '***')  #租赁量
        self.dr.type('name->market_price', '***')  #市场价
        self.dr.type('name->min_order', '***')  #最小租赁量
        self.dr.type('name->max_order', '***')  #最多租赁量
        self.dr.type('name->repertory', '***')  #库存

        #有效期 *
        self.dr.click('id->skuStartDate')  #起始
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(3)
        self.dr.click('id->dpTodayInput')
        self.dr.sleep(2)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)
        self.dr.click('name->skuEndDate')  #截止
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(3)
        self.dr.click('id->dpTodayInput')
        self.dr.sleep(2)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        #费用包含
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[21]/td/label[1]'
        )  #车辆使用费
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[21]/td/label[2]'
        )  #司导
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[21]/td/label[3]'
        )  #拥堵
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[21]/td/label[4]'
        )  #邮费
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[21]/td/label[5]'
        )  #空驶
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[21]/td/label[6]'
        )  #司导餐补
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[21]/td/label[7]'
        )  #路桥费
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[21]/td/label[8]'
        )  #停车费

        #出售时间 *
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[22]/td/label[1]'
        )  #默认
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[22]/td/label[2]/input[1]'
        )  #设定
        self.dr.sleep(1)
        self.dr.click('id->saleStartTime')  #起始
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(3)
        self.dr.click('id->dpTodayInput')
        self.dr.sleep(2)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)
        self.dr.click('name->saleEndTime')  #截止
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(3)
        self.dr.click('id->dpTodayInput')
        self.dr.sleep(2)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)
        # 放入仓库
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[22]/td/label[3]')

        #退款设置
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[24]/td/label[1]'
        )  #默认
        # self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[24]/td/label[2]')

        #退款审核
        self.dr.click('xpath->//*[@id="refundAudit"]/td/label[1]')
        self.dr.click('xpath->//*[@id="refundAudit"]/td/label[2]')  #默认

        #退款说明 *
        self.dr.type('name->refundInfo', '***')

        #使用说明
        self.dr.type('name->remind', '***')

        #温馨提示
        self.dr.type('name->memo', '***')
    def test_login_page(self):
        """ login """
        #************************** login ************************
        page = login_page.IndexPage(self.dr)
        page.into_page('http://192.168.0.65:8010/')
        page.input_username_key('admin')
        page.input_password_key('123456')
        page.click_button()
        time.sleep(7)
        self.assertEqual(u'旅游公共信息服务平台', page.return_title())

        #************************** porject ***********************
        self.dr.click('id->systemName')
        time.sleep(1)

        self.dr.click('xpath->/html/body/div[1]/ul/li[2]/ul/li[7]')
        time.sleep(3)

        self.dr.click('id->790')  #产品管理
        time.sleep(2)

        self.dr.click('id->792')  #门票
        time.sleep(3)

        #************************ 切换frame **********************
        self.dr.switch_to_frame('id->indIframe')
        time.sleep(3)

        #************************* before check ********************
        text_before = self.dr.get_text(
            'xpath->//*[@id="listForm"]/div[4]')  #获取当前页面条数显示信息
        print text_before

        #************************** actions ************************
        self.dr.click('xpath->//*[@id="listForm"]/div[2]/a[1]')  #点击添加
        self.dr.sleep(3)

        #选择景区 *
        self.dr.click('id->companyName')  #打开景区列表
        self.dr.sleep(2)
        self.dr.click(
            'xpath->/html/body/div[5]/div[2]/table/tbody/tr[1]')  #景区列表第一个
        #2: 输入景区名
        self.dr.type('xpath->/html/body/div[5]/div[1]/input',
                     '******')  # * 搜索条件
        self.dr.click('xpath->/html/body/div[5]/div[1]/a')  #搜索键
        self.dr.click('xpath->/html/body/div[5]/div[1]/button')  #清空

        #选择票型 *     此受限于选择景区的选择
        self.dr.click('id->companyType')  #打开票型列表
        self.dr.sleep(2)
        self.dr.click('xpath->//*[@id="companyType"]/option[2]')  #列表第二个
        #新增票型
        self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/a')

        #产品名称 * (2-60字)
        self.dr.type('name->name', '*******')  # * 为输入数据

        #服务特色 *
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/span/label'
        )  #随时退
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/span/span'
        )  #秒发码

        #对接接口
        self.dr.click('id->appkeyType')  #选择对接接口,点击
        self.dr.sleep(2)
        self.dr.click('xpath->//*[@id="appkeyType"]/option[2]')  #列表第二个
        #输入
        self.dr.type('name->outSn', '****')  #* 为输入数据

        #商户
        self.dr.click('id->supplierName')  #打开列表
        self.dr.sleep(2)
        self.dr.click(
            'xpath->/html/body/div[6]/div[2]/table/tbody/tr[1]')  #第二个
        #2:
        self.dr.type('xpath->/html/body/div[6]/div[1]/input', '*****')  #输入搜索条件
        self.dr.type('xpath->/html/body/div[6]/div[1]/a')  #点击搜索
        self.dr.click('xpath->/html/body/div[6]/div[1]/button')  #清空

        #验票人
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[8]/td/label'
        )  #用户可验票
        self.dr.click('id->selectCheckTicketMember')  #其他验票人
        #切iframe
        self.dr.switch_to_frame('id->browserFrame1535075562203244887')
        self.dr.sleep(3)
        #选择验票人:
        self.dr.click('id->selectAll')  #全选
        self.dr.click('xpath->//*[@id="listTable"]/tbody/tr[2]')  #选择第一个
        self.dr.click('xpath->/html/body/div[9]/div[4]/input[1]')  #确定
        self.dr.click('xpath->/html/body/div[9]/div[4]/input[2]')  #关闭
        self.dr.type('id->searchValue')  #输入条件
        self.dr.click('xpath->//*[@id="listForm"]/div[1]/button')  #点击查询
        #回到main frame
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        #商品头图   (单次)
        self.dr.click('xpath->/html/body/div[8]')  #点击上传新图片
        self.dr.sleep(3)
        os.system('D:\WinClick3.exe')  #路径
        self.dr.sleep(3)

        #************************ check after ************************
        pass
示例#19
0
    def test_login_page(self):
        """ login """
        #************************** login ************************
        page = login_page.IndexPage(self.dr)
        page.into_page('http://192.168.0.65:8010/')
        page.input_username_key('admin')
        page.input_password_key('123456')
        page.click_button()
        time.sleep(7)
        self.assertEqual(u'旅游公共信息服务平台', page.return_title())

        #************************** porject ***********************
        self.dr.click('id->systemName')
        time.sleep(1)

        self.dr.click('xpath->/html/body/div[1]/ul/li[2]/ul/li[7]')
        time.sleep(3)

        self.dr.click('id->790')  #产品管理
        time.sleep(2)

        self.dr.click('id->890')  #秒杀
        time.sleep(3)

        #************************ 切换frame **********************
        self.dr.switch_to_frame('id->indIframe')
        time.sleep(3)

        #************************* before check ********************
        text_before = self.dr.get_text(
            'xpath->//*[@id="listForm"]/div[4]')  #获取当前页面条数显示信息
        print text_before

        #************************** actions ************************
        self.dr.click('xpath->//*[@id="listForm"]/div[2]/a[1]')  #点击添加
        self.dr.sleep(3)

        #商品名称 *
        self.dr.type('name->name', '***')

        #所属地区 *
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/span/select[1]'
        )
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/span/select/option[4]'
        )  #省
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/span/select[2]'
        )
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/span/select[2]/option[2]'
        )  #市
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/span/select[3]'
        )
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/span/select[3]/option[2]'
        )  #县

        #对接接口
        self.dr.click('id->appkeyType')
        self.dr.sleep(2)
        self.dr.click('xpath->//*[@id="appkeyType"]/option[2]')
        self.dr.type('name->outSn', '***')

        #商户
        self.dr.click('id->supplierName')
        self.dr.sleep(2)
        self.dr.click('xpath->/html/body/div[6]/div[2]/table/tbody/tr[1]')

        #验票人
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[6]/td/label')

        self.dr.click('id->selectCheckTicketMember')

        #商品图片 *
        self.dr.click('xpath->/html/body/div[8]')
        self.dr.sleep(2)
        os.system('D:\WinClick2.exe')  #******
        self.dr.sleep(2)

        #商品封面图
        self.dr.click('id->logoUploadBox_1_1')
        self.dr.sleep(2)
        os.system('D:\WinClick4.exe')  #******
        self.dr.sleep(2)

        #销售渠道
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[1]/label[1]'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[1]/label[2]'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[1]/label[3]'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[1]/label[4]'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[1]/label[5]'
        )

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/label[2]')

        #抢购时间 *
        self.dr.click('id->saleStartTime')
        self.dr.sleep(2)
        #TODO
        self.dr.click('id->saleEndTime')
        self.dr.sleep(2)
        #TODO

        #取消设置
        self.dr.type('name->autoCancelTime', '***')

        #所需信息
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[13]/td/label[3]')

        #手机限购
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[14]/th/label')

        self.dr.click('name->limitTimeType_MOBILE')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[14]/td/label/select[1]/option[1]'
        )
        self.dr.sleep(2)
        self.dr.click('name->limitTimeNum_MOBILE')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[14]/td/label/select[2]/option[1]'
        )
        self.dr.sleep(2)
        self.dr.type('name->limitAmountNum_MOBILE', '***')

        #身份证限购
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[15]/th/label')

        self.dr.click('name->limitTimeType_IDCARD')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[15]/td/label/select[1]/option[1]'
        )
        self.dr.sleep(2)
        self.dr.click('name->limitTimeNum_IDCARD')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[15]/td/label/select[2]/option[1]'
        )
        self.dr.sleep(2)
        self.dr.type('name->limitAmountNum_IDCARD', '***')

        #短信模板 *
        self.dr.click('id->smsThemeId')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[16]/td/div/ul/li[1]'
        )

        #运费模板
        self.dr.click('id->deliverTemplateId')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[17]/td/div/ul/li[2]'
        )

        #价格库存 *
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[18]/td/label[1]')

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[18]/td/label[2]')

        #验证消费日期 *
        self.dr.click('xpath->//*[@id="consumeAuthen"]/td/label[1]')

        self.dr.click('id->consumeAuthenType_OUTSIDE_DATE')
        self.dr.click('name->beforeDay')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="consumeAuthen"]/td/label[2]/select[1]/option[2]')
        self.dr.sleep(2)
        self.dr.click('name->afterDay')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="consumeAuthen"]/td/label[2]/select[2]/option[2]')

        #价格库存 *
        #TODO

        #时间限制
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[22]/td/label[1]')

        self.dr.click(
            'xpaht->//*[@id="inputForm"]/table[1]/tbody/tr[22]/td/label[2]/label'
        )
        self.dr.type('name->enterSightAdvanceDay', '***')
        self.dr.click('name->enterSightAdvanceHour')
        self.dr.sleep(2)
        self.dr.click('name->//*[@id="ADVANCE_BOOK_TIME"]/option[1]')
        self.dr.sleep(2)
        self.dr.click('name->enterSightAdvanceMinute')
        self.dr.sleep(2)
        self.dr.click('xpath->//*[@id="ADVANCE_BOOK_TIME"]/option[1]')

        #退款设置
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[23]/td/label[1]/input[1]'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[23]/td/label[1]/select[1]'
        )
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[23]/td/label[1]/select[1]/option[1]'
        )
        self.dr.sleep(2)
        self.dr.click('id->refundChargeType')
        self.dr.sleep(2)
        self.dr.click('xpath->//*[@id="refundChargeType"]/option[1]')
        self.dr.sleep(2)
        self.dr.type('id->refundCharge', '***')

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[23]/td/label[2]')

        #退款审核
        self.dr.click('xpath->//*[@id="refundAudit"]/td/label[1]')

        self.dr.click('xpath->//*[@id="refundAudit"]/td/label[2]')

        #退款说明 *
        self.dr.type('name->refundInfo', '***')

        #抢购须知 *
        self.dr.switch_to_frame(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[27]/td/div/div[2]/iframe'
        )
        self.dr.sleep(3)
        self.dr.type('xpath->/html/body', '***')
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        #商品描述 *
        self.dr.switch_to_frame(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[28]/td/div/div[2]/iframe'
        )
        self.dr.sleep(3)
        self.dr.type('xpath->/html/body', '***')
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        #使用说明 *
        self.dr.switch_to_frame(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[29]/td/div/div[2]/iframe'
        )
        self.dr.sleep(3)
        self.dr.type('xpath->/html/body', '***')
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        #保存
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[2]/tbody/tr/td/input[1]')

        #返回
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[2]/tbody/tr/td/input[2]')
    def test_login_page(self):
        """ login """
        #************************** login ************************
        page = login_page.IndexPage(self.dr)
        page.into_page('http://192.168.0.65:8010/')
        page.input_username_key('admin')
        page.input_password_key('123456')
        page.click_button()
        time.sleep(7)
        self.assertEqual(u'旅游公共信息服务平台', page.return_title())

        #************************** porject ***********************
        self.dr.click('id->systemName')
        time.sleep(1)

        self.dr.click('xpath->/html/body/div[1]/ul/li[2]/ul/li[7]')
        time.sleep(3)

        self.dr.click('id->790')  #产品管理
        time.sleep(2)

        self.dr.click('id->885')  #年卡
        time.sleep(3)

        #************************ 切换frame **********************
        self.dr.switch_to_frame('id->indIframe')
        time.sleep(3)

        #************************* before check ********************
        text_before = self.dr.get_text(
            'xpath->//*[@id="listForm"]/div[4]')  #获取当前页面条数显示信息
        print text_before

        #************************** actions ************************
        self.dr.click('xpath->//*[@id="listForm"]/div[2]/a[1]')  #点击添加
        self.dr.sleep(3)

        #产品名称 *
        self.dr.type('name->name', '***')

        #年卡内容
        self.dr.type('id->zy', '***')  #资源
        self.dr.click('name->companyType_')  #票型
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/table/tbody/tr[2]/td/select/option'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/table/tbody/tr[2]/td/button'
        )  #重置

        self.dr.type('name->price_', '***')  #价格

        self.dr.type('name->remind_', '***')  #使用细则

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/table/tbody/tr[5]/td/span/label[1]'
        )  #无限次

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/table/tbody/tr[5]/td/span/label[2]'
        )  #免一次

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/table/tbody/tr[5]/td/span/label[3]/label'
        )  #免
        self.dr.type(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/table/tbody/tr[5]/td/span/label[3]/input',
            '***')  #**次

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/table/tbody/tr[5]/td/span/label[4]/label'
        )  #特惠
        self.dr.type(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/table/tbody/tr[5]/td/span/label[4]/input',
            '***')  #***元/次

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/table/tbody/tr[5]/td/span/label[5]/label'
        )  #特惠
        self.dr.type('name->specialPrice_', '***')  #***元/次

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/table/tbody/tr[5]/td/span/label[5]/input[2]',
            '***')  #限***次

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/table/tbody/tr[1]/td/div/input'
        )  #增加年卡内容
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[3]/td/table/tbody/tr[1]/td/div/label[2]/b'
        )  #删除
        #商户
        self.dr.click('id->supplierName')
        self.dr.sleep(2)
        self.dr.click('xpath->/html/body/div[4]/div[2]/table/tbody/tr[1]')

        #验票人 *
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/label')

        self.dr.click('id->selectCheckTicketMember')

        #商品头图 *
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[6]/td/div/div/ul/li/div/a'
        )
        self.dr.sleep(3)
        os.system('D:\WinClick2.exe')  #********
        self.dr.sleep(3)

        #商品封面图
        self.dr.click('id->logoUploadBox_1_1')
        self.dr.sleep(3)
        os.system('D:\WinClick3.exe')  #****
        self.dr.sleep(3)

        #销售渠道
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[8]/td/label[1]/label[1]'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[8]/td/label[1]/label[2]'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[8]/td/label[1]/label[3]'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[8]/td/label[1]/label[4]'
        )
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[8]/td/label[1]/label[5]'
        )

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[8]/td/label[2]')

        #取消设置
        self.dr.type('name>autoCancelTime', '***')

        #联系人信息
        #客人信息
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[12]/th/label'
        )  #客人信息

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[12]/td/span/label[1]'
        )  #仅需要
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[12]/td/span/label[2]'
        )  #需要
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[12]/td/span/label[3]/label'
        )  #每
        self.dr.type('id->passengerInfoPerNumInput', '***')  #***个

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[12]/td/div/label[1]'
        )  #姓名
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[12]/td/div/label[2]'
        )  #手机

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[12]/td/div/label[3]'
        )  #身份证
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[12]/td/div/label[4]'
        )  #护照
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[12]/td/div/label[5]'
        )  #台胞证
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[12]/td/div/label[6]'
        )  #港澳通行证

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[12]/td/div/label[7]/label'
        )
        self.dr.type('name->needPassengerInfoOther1', '***')
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[12]/td/div/label[8]/label'
        )
        self.dr.type('name->needPassengerInfoOther2', '***')

        #地区限制
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[13]/td/input[1]')
        self.dr.sleep(2)
        self.dr.click('name->areaLimit_select')

        #时间限制
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[1]/td/label[1]')

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[1]/td/label[2]/label'
        )
        self.dr.type('name->enterSightAdvanceDay', '***')
        self.dr.click('name->enterSightAdvanceHour')
        self.dr.sleep(2)
        self.dr.click('xpath->//*[@id="ADVANCE_BOOK_TIME"]/option[1]')
        self.dr.sleep(2)
        self.dr.click('name->enterSightAdvanceMinute')
        self.dr.sleep(2)
        self.dr.click('xpath->//*[@id="ADVANCE_BOOK_TIME"]/option[1]')
        self.dr.sleep(2)

        #手机限制
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[2]/th/label')

        self.dr.click('name->limitTimeType_MOBILE')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[2]/td/select[1]/option[1]'
        )
        self.dr.sleep(2)
        self.dr.click('name->limitTimeNum_MOBILE')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[2]/td/select[2]/option[1]'
        )
        self.dr.sleep(2)
        self.dr.type('name->limitAmountNum_MOBILE', '***')

        #身份证限制
        self.dr.sleep(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[3]/th/label')

        self.dr.click('name->limitTimeType_IDCARD')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[3]/td/select[1]/option[1]'
        )
        self.dr.sleep(2)
        self.dr.click('name->limitTimeNum_IDCARD')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[3]/td/select[2]/option[1]'
        )
        self.dr.sleep(2)
        self.dr.type('name->limitAmountNum_IDCARD', '***')

        #出售时间 *
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[4]/td/label[1]')

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[4]/td/label[2]/input[1]'
        )
        self.dr.click('id->saleStartTime')
        self.dr.sleep(2)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(3)
        self.dr.click('id->dpTodayInput')
        self.dr.sleep(3)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)
        self.dr.click('name->saleEndTime')
        self.dr.sleep(1)
        self.dr.switch_to_frame('xpath->//*[@id="_my97DP"]/iframe')
        self.dr.sleep(3)
        self.dr.click('xpath->/html/body/div/div[6]/input[2]')
        self.dr.sleep(1)
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')
        self.dr.sleep(3)

        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[4]/td/label[3]')

        #兑换凭证 *
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[6]/td/label[1]'
        )  #确认短信
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[6]/td/label[2]'
        )  #身份证
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[6]/td/label[3]'
        )  #短信和身份证
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[6]/td/label[4]'
        )  #电子邮件

        #使用方式 *
        self.dr.type('name->pickupAddress', '***')

        self.dr.type('name->pickupTime', '***')

        #使用地址 *
        self.dr.type('name->passAddress', '***')

        #短信模板 *
        self.dr.click('id->smsThemeId')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[9]/td/div/ul/li[1]')

        #价格库存模式(默认) *
        #价格库存 *
        #编辑价格
        self.dr.click('id->modifyprice')
        self.dr.sleep(2)
        self.dr.click('id->startDate_2')
        #TODO
        self.dr.click('id->endDate_2')
        #TODO
        self.dr.type('id->marketPrice_2', '***')  #票面价
        self.dr.type('id->stockNum_2', '***')  #整体库存
        self.dr.type('id->sellPrice_2', '***')  #售卖价
        self.dr.type('id->minimum_2', '***')  #最少购买
        self.dr.type('id->maximum_2', '***')  #最多购买
        self.dr.click(
            'xpath->//*[@id="totalStock"]/div[2]/div[4]/input[1]')  #保存
        self.dr.click(
            'xpath->//*[@id="totalStock"]/div[2]/div[4]/input[2]')  #取消
        #价格库存 *

        #商品调价
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[14]/td/label[1]')
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[14]/td/label[2]')

        #退款设置
        #可以退款:
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[16]/td/label[1]/input[1]'
        )
        #列表1:
        self.dr.click('name->partRefund')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[16]/td/label[1]/select[1]/option[1]'
        )
        #列表2:
        self.dr.click('id->refundChargeType')
        self.dr.sleep(2)
        self.dr.click('xpath->//*[@id="refundChargeType"]/option[1]')
        #输入
        self.dr.type('id->refundCharge', '***')
        #不可退款
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[16]/td/label[2]')

        #退款审核
        self.dr.click('xpath->//*[@id="refundAudit"]/td/label[1]')
        self.dr.click('xpath->//*[@id="refundAudit"]/td/label[2]')

        #退款说明 *
        self.dr.type('name->refundInfo', '***')

        #购买条款 *
        self.dr.switch_to_frame(
            'xpath->//*[@id="inputForm"]/table[3]/tbody/tr[20]/td/div/div[2]/iframe'
        )
        self.dr.sleep(3)
        self.dr.type('xpath->/html/body', '***')
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('id->indIframe')

        #保存
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[4]/tbody/tr/td/input[1]')

        #返回
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[4]/tbody/tr/td/input[2]')
    def test_login_page(self):
        """ login """
        #************************** login ************************
        page = login_page.IndexPage(self.dr)
        page.into_page('http://192.168.0.65:8010/')
        page.input_username_key('admin')
        page.input_password_key('123456')
        page.click_button()
        time.sleep(7)
        self.assertEqual(u'旅游公共信息服务平台', page.return_title())

        #************************** porject ***********************
        self.dr.click('id->systemName')
        time.sleep(1)

        self.dr.click('xpath->/html/body/div[1]/ul/li[2]/ul/li[7]')
        time.sleep(3)

        self.dr.click('id->790')  #产品管理
        time.sleep(2)

        self.dr.click('id->794')  #特产
        time.sleep(3)

        #************************ 切换frame **********************
        self.dr.switch_to_frame('id->indIframe')
        time.sleep(3)

        self.dr.click('xpath->//*[@id="listForm"]/div[2]/a[1]')
        self.dr.sleep(3)

        # ********************** actions *****************************

        # 商品名称(1-60字)
        self.dr.type('name->name' '***')  #商品名称

        #商品卖点 *
        self.dr.type('name->sellingPoint', '***')

        #商品属性
        #品牌
        self.dr.click('id->specialtyBrand')
        self.dr.sleep(1)
        self.dr.click('xpath->//*[@id="specialtyBrand"]/option[2]')
        #生成许可证编号
        self.dr.type('name->licenseNo', '*****')
        #厂名
        self.dr.type('name->factoryName', '***')
        #厂家联系方式
        self.dr.type('name->contactWay', '***')
        #进货日期
        self.dr.type('name->inStockStartDate', '***')  #可以直接输入也可以按照日期的方式选择。
        #产地
        self.dr.click('name->areaCity_select')
        self.dr.sleep(1)
        self.dr.click(
            'xpath->//*[@id="id_propertytable"]/tbody/tr[1]/td[2]/span/select/option[2]'
        )  #第二个选项
        #产品标准号
        self.dr.type('name->standardNo', '***')
        #厂址
        self.dr.type('name->factoryAddress', '***')
        #特产类型
        self.dr.click('id->productClassId')
        self.dr.sleep(1)
        self.dr.click(
            'xpath->//*[@id="id_propertytable"]/tbody/tr[4]/td[2]/div/ul/li[2]'
        )  #第二个选项
        #添加类型
        self.dr.click('xpath->//*[@id="id_propertytable"]/tbody/tr[4]/td[2]/a')
        #生产日期
        self.dr.type('name->inStockStartDate', '***')  #可以直接输入也可以按照日期的方式选择。

        #发货地址 *
        self.dr.click('name->startAreaCity_select')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/select/option[2]'
        )  #第二个选项
        #省级目标选择后,才会出现下级列表选择
        self.dr.click('name->startAreaCity_select')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/select[2]/option[2]'
        )  #第二个选项
        #市级目标选择后,出现最后一级目标
        self.dr.click('name->startAreaCity_select')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[5]/td/select[3]/option[2]'
        )  #第二个选项

        #商户
        self.dr.click('id->supplierName')
        self.dr.sleep(2)
        self.dr.click('xpath->/html/body/div[3]/div[2]/table/tbody/tr[1]')

        #验票人
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[7]/td/label'
        )  #默认是勾选装填
        self.dr.click('id->selectCheckTicketMember')
        #切frame
        #选择
        #确定
        #切回frame

        #销售驱动
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[8]/td/label[1]/label[1]'
        )  #C端
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[8]/td/label[2]'
        )  #PC商场

        #特产图片 *
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[9]/td/div/div[2]/ul/li/div/a'
        )
        self.dr.sleep(3)
        os.system('D:\WinClick4.exe')  #AUTO执行文件
        self.dr.sleep(3)

        #商品封面图
        self.dr.click('id->logoUploadBox_1_1')
        self.dr.sleep(3)
        os.system('D:\WinClick3.exe')  #AUTO执行文件
        self.dr.sleep(3)

        #取消设置
        self.dr.type('id->autoCancelTime', '***')

        #联系人信息(默认三个勾选)

        #手机限制
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[14]/th/label')
        self.dr.sleep(2)
        self.dr.type('name->limitAmountNum_MOBILE', '***')

        #出售时间 * (默认勾选:1)
        #1
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[15]/td/label[1]')
        #2
        self.dr.click('name->displayWay')
        self.dr.sleep(1)
        self.dr.click('id->saleStartTime')  #起始
        #时间选择
        self.dr.click('id->saleEndTime')  #截止
        #时间选择

        #短信模板 *
        self.dr.click('id->smsThemeId')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[16]/td/div/ul/li[1]'
        )  #第二个选项
        #新增
        self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[16]/td/a')

        #运费模板 *
        self.dr.click('id->deliverTemplateId')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[17]/td/div/ul/li[1]'
        )
        #新增
        self.dr.click('xpath->//*[@id="inputForm"]/table[1]/tbody/tr[17]/td/a')

        #商品规格 *
        #一级规格
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[19]/td/table/tbody/tr[1]/td/select'
        )
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[19]/td/table/tbody/tr[1]/td/select/option[2]'
        )
        #二级规格
        self.dr.type('id->sku_tagsinput', '***')

        #价格库存 *
        self.dr.click('id->batchset')
        self.dr.sleep(2)
        self.dr.type('id->marketPrice_2', '***')  #市场价
        self.dr.type('id->stockNum_2', '***')  #整体库存
        self.dr.type('id->sellPrice_2', '***')  #售卖价
        self.dr.type('id->minimum_2', '***')  #最少购买
        self.dr.type('id->maximum_2', '***')  #最多购买
        self.dr.click('xpath->//*[@id="skuStock"]/div[2]/div[4]/input[1]')  #保存
        self.dr.click('xpath->//*[@id="skuStock"]/div[2]/div[4]/input[2]')  #取消

        #商品调价
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[21]/td/label[1]'
        )  #是(默认)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[21]/td/label[2]'
        )  #否

        #退款设置
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[23]/td/label[1]'
        )  #可以退款(默认)
        #列表:1
        self.dr.click('name->partRefund')
        self.dr.sleep(2)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[23]/td/select[1]/option[1]'
        )  #默认
        #列表:2
        self.dr.click('id->refundChargeType')
        time.sleep(2)
        self.dr.click('xpath->//*[@id="refundChargeType"]/option[1]')  #默认
        #输入:
        self.dr.type('id->refundCharge', '***')
        #不可退款
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[23]/td/label[2]')

        #退款审核(选择不可退款后,无此项)
        self.dr.click('xpath->//*[@id="refundAudit"]/td/label[1]')  #需要审核
        self.dr.click('xpath->//*[@id="refundAudit"]/td/label[2]')  #不需要审核(默认)

        #售后服务(可多选)
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[25]/td/label[1]'
        )  #第一个:提供发票。label[1]:依次

        #商品描述
        self.dr.switch_to_frame(
            'xpath->//*[@id="inputForm"]/table[1]/tbody/tr[27]/td/div/div[2]/iframe'
        )
        self.dr.sleep(3)
        self.dr.type('xpath->/html/body', '***')

        #保存
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[2]/tbody/tr/td/input[1]')
        #返回
        self.dr.click(
            'xpath->//*[@id="inputForm"]/table[2]/tbody/tr/td/input[2]')
    def test_actions_add_001(self):
        """
        用例编号:actions_add_001
        模块:add
        功能点:新增(全)
        """
        #****************************** login ******************************
        page = login_page.IndexPage(self.dr)
        page.into_page('')  #URL
        page.input_username_key('')  #账户
        page.input_password_key('')  #密码
        page.input_code_key('')  #验证码
        page.click_button()  #登录
        time.sleep(7)
        #****************************** login check ******************************
        self.assertEqual(u'', page.return_title())  #网站title

        #****************************** porject ******************************
        self.dr.click('')
        self.dr.sleep(3)

        #****************************** 切换frame ******************************
        self.dr.switch_to_frame('')
        self.dr.sleep(3)

        #****************************** before check(获取信息总数) ******************************
        text_before = self.dr.get_text('')  #共 * 条记录 共*页
        # print text_before

        #****************************** actions add ******************************
        """actions_add"""
        #TODO
        #1: input
        self.dr.type('***->***', '***')  #原来的文本中有数据使用:clear_type

        #2: list
        self.dr.click('***->***')  #点击list 触发下拉列表然后在选择
        self.dr.sleep(2)  #此处的 sleep = time.sleep(2)
        self.dr.click('***->***')
        self.dr.sleep(2)

        #3:  select
        self.dr.click('***->***')  #已有选择项,使用此方法,需新增的需先增加选择

        #4.1: upload (本地上传)
        self.dr.click('***->***')  #上传按键
        self.dr.sleep(3)
        os.system('')  #AutoIt   此处输入autoIt转化的执行文件
        self.dr.sleep(3)
        #4.2: upload(非本地)
        self.dr.click('***->***')  #一般情况会触发弹窗,然后让用户选择
        self.dr.sleep(3)
        self.dr.click('***->***')  #选择某个目标后,有可能需要,点击确定,也有可能选择即生效,具体看网站

        #5; download
        #TODO

        #6.1: date(输入式)
        self.dr.type('***->***')
        #6.2: date(选择式)
        self.dr.click('***->***')  #一般为年月日,依次选择,固需执行多次。

        #7: frame
        self.dr.switch_to_frame('***->***')  #此处跳新frame
        self.dr.sleep(3)
        #******** 操作
        #TODO 在新frame下执行对应操作,操作完成后,需退出,重新回到原来的frame,或之后要操作元素所在的frame
        self.dr.switch_to_frame_out()
        self.dr.sleep(3)
        self.dr.switch_to_frame('***->***')  #回到之前的frame,或之后要操作元素所在的frame
        self.dr.sleep(3)

        #****************************** check after(操作后check总数变化) ******************************
        text_after = self.dr.get_text('')