Example #1
0
 def test_111(self,driver):
     base = baseUI(driver)
     # 打开网址
     driver.get("http://192.168.60.132/#/login")
     # 输入用户名
     base.send_keys('输入用户名', "//input[@name='username']", 'admin')
     # 输入密码
     base.send_keys('输入密码', "//input[@name='password']", '123456')
     # 点击登录
     base.click("点击登录", "//span[contains(text(),'登录')]")
     # 点击营销
     base.click("点击营销","//span[contains(text(),'营销')]")
     base = baseUI(driver)
     # 点击优惠券列表
     base.click("点击优惠券列表", "//span[contains(text(),'优惠券列表')]")
     # 点击编辑
     base.click("点击编辑", "//span[contains(text(),'编辑')]")
     # 输入优惠券名称
     base.send_keys("输入优惠券名称", "//label[contains(text(),'优惠券名称')]/following-sibling::div//input", 'youhuiquan')
     # 点击提交
     base.click("点击提交", "//span[contains(text(),'提交')]")
     time.sleep(2)
     # 点击确定// span[contains(text(), '确定')]
     base.click("点击确定", "//span[contains(text(),'确定')]/parent::button")
     # 断言 /html[@class=' ']/body/div[@class='el-message el-message--success']
     source = driver.page_source
     print(source)
     tishi = driver.find_element_by_xpath("//div[@role = 'alert']/p")
     assert "修改成功" in tishi.text
Example #2
0
 def test_demo3(self,driver):
     base = baseUI(driver)
     driver.get("file:///E:/softwaredata/01_%E6%95%99%E5%AD%A6/1902%E5%88%9D%E7%BA%A7%E7%8F%AD/demo.html")
     #base.send_keys("上传文件","//input[@type='file']","‪D:/1.png")
     #删除日期控件,只读属性
     #base.remove_attribute_by_xpath("删除日期控件,只读属性","//input[@type='date']","readonly")
     # base.update_attribute_by_xpath("修改日期控件value值","//input[@type='date']",'value','2019-04-03')
     # base.select_by_visible_text("选择丁雁玲","//select","丁雁玲")
     # time.sleep(1)
     # base.select_by_value("选择魏谦","//select","w")
     # time.sleep(1)
     # base.select_by_index("选择丁雁玲","//select",1)
     # select = Select(driver.find_element_by_xpath("//select"))
     # select.select_by_visible_text("丁雁玲")
     # time.sleep(1)
     # select.select_by_index(2)
     # time.sleep(1)
     # select.select_by_value("d")
     #base.click("点击百度","//a[contains(text(),'百度')]")
     action = ActionChains(driver)
     action.key_down(Keys.CONTROL).click(driver.find_element_by_xpath("//a[contains(text(),'百度')]")).key_up(Keys.CONTROL).perform()
     action.key_down(Keys.CONTROL).click(driver.find_element_by_xpath("//a[contains(text(),'京东')]")).key_up(
         Keys.CONTROL).perform()
     action.key_down(Keys.CONTROL).click(driver.find_element_by_xpath("//a[contains(text(),'当当')]")).key_up(
         Keys.CONTROL).perform()
     base.switch_to_windows_by_title('切换窗口至京东','京东')
     time.sleep(3)
     # action.key_down(Keys.SHIFT).click(driver.find_element_by_xpath("//a[contains(text(),'百度')]")).key_up(Keys.SHIFT).perform()
     time.sleep(5)
     driver.switch_to.window()
Example #3
0
 def test_demo4(self,driver):
     base = baseUI(driver)
     # 打开网址
     driver.get("http://192.168.60.132/#/login")
     # 输入用户名//input[@name='username']
     base.send_keys("输入用户名", "//input[@name='username']", "admin")
     # 输入密码//input[@name='password']
     base.send_keys("输入密码", "//input[@name='password']", "123456")
     # 点击登录(//span[contains(text(),'登录')])[1]
     base.click('点击登录', "(//span[contains(text(),'登录')])[1]")
     #点击营销
     base.click("点击营销","//span[text()='营销']")
     #点击优惠券列表(//span[contains(text(),'优惠券列表')])[1]
     base.click("点击优惠券列表","(//span[contains(text(),'优惠券列表')])[1]")
     #点击第一条数据的编辑(//tr)[2]//span[contains(text(),'编辑')]
     base.click("点击第一条数据的编辑","(//tr)[2]//span[contains(text(),'编辑')]")
     #点击提交//span[contains(text(),'提交')]
     base.click("点击提交","//span[contains(text(),'提交')]")
     #点击确定//span[contains(text(),'确定')]
     base.click("点击确定","//span[contains(text(),'确定')]")
     print(driver.page_source)
     text = base.get_text("获取页面展示文本","//div[@role='alert']")
     #print(driver.page_source)
     #
     #print(text)
     Assertion.assert_in_text(text,'修改成功')
    def test_start(self, driver):
        #确定chromedriver.exe的位置
        driver_path = os.path.join(os.path.dirname(__file__),
                                   "../chromedriver/chromedriver.exe")
        #打开浏览器
        # driver = webdriver.Chrome(driver_path)
        # driver.maximize_window()  # 最大化浏览器--
        # driver.set_page_load_timeout(10)  # 网页加载超时为10s
        # driver.set_script_timeout(10)  # js脚本运行超时10s
        # driver.implicitly_wait(10)  # 元素查找超时时间10s
        base = baseUI(driver)
        driver.get('https://www.damai.cn/')
        #d定位登录按钮并点击
        driver.find_element_by_xpath('//span[@data-spm="dlogin"]').click()
        f = driver.find_element_by_xpath('//iframe[@id="alibaba-login-box"]')
        driver.switch_to_frame(f)
        # 定位用户名输入框//input[@aria-label="请输入手机号或邮箱"]
        a = driver.find_element_by_xpath('//input[@aria-label="请输入手机号或邮箱"]')
        # 输入用户名'18121256785'
        a.send_keys('18121256785')
        # 定位密码输入框
        b = driver.find_element_by_xpath('//input[@aria-label="请输入登录密码"]')
        # 输入密码' '
        b.send_keys('aa741258')

        # 定位登录并点击//button[@type="submit"]
        base.click('点击登录按钮', '//button[@type="submit"]')

        #滑块
        d = driver.find_element_by_xpath('//span[@id="nc_1_n1z"]')
        action = ActionChains(driver)
        action.click_and_hold(d).perform()
        action.reset_actions()
        action.move_by_offset(300, 40).perform()
        time.sleep(2)
Example #5
0
def login(driver):
    base = baseUI(driver)

    # 打开网址
    driver.get("http://192.168.1.137/#/login")
    # 定位并处理异常弹框//span[contains(text(),'残忍拒绝')]

    # 定位用户名输入框//input[@name='username']
    # username = driver.find_element_by_xpath("//input[@name='username']")
    # 输入用户名
    # username.clear()
    # username.send_keys("admin")
    # 定位密码输入框//input[@name='password']
    # password = driver.find_element_by_xpath("//input[@name='password']")
    # 输入密码
    # password.clear()
    # password.send_keys("123456")
    # 定位登录按钮(//span[contains(text(),'登录')])[1]
    base.click("点击登录按钮", "(//span[contains(text(),'登录')])[1]")
    # 点击登录按钮

    try:
        base.click("点击残忍拒绝", "//span[contains(text(),'残忍拒绝')]")
    except:
        pass
    # 线程等待,特定程序执行到该语句就会休眠给定的时间,时间到,继续执行下边的代码。写代码调试的时候用
    time.sleep(2)
    # selenium提供了一个显示等待,特点:判断页面元素是否达到某种状态,如果条件满足程序就会往下执行,如果不满足,超时时间达到,就会抛出异常,代码会终止
    # WebDriverWait(driver, 5, 0.3).until(EC.presence_of_element_located((By.XPATH, "(//span[contains(text(),'登录')])[1]"))).click()
    base.click("点击登录按钮", "(//span[contains(text(),'登录')])[1]")
    time.sleep(1)
    # 断言页面是否跳转到首页
    assert "首页" in driver.page_source
 def test_demo4(self,driver):
        base = baseUI(driver)
        # 输入网址
        driver.get("http://192.168.60.132/#/login")
        # 输入用户名
        base.send_keys('输入用户名', '//input[@name="username"]', 'admin')
        # 密码
        base.send_keys('密码', '//input[@name="password"]', '123456')
        # 点击登录
        base.click('点击登录', "//span[contains(text(),'登录')]")
        # 点击订单(//span[contains(text(),'订单')])[1]
        base.click("点击订单","(//span[contains(text(),'订单')])[1]")
        # 点击订单列表//span[contains(text(),'订单列表')]
        base.click("点击订单列表", "//span[contains(text(),'订单列表')]")
        # 点击订单状态//label[contains(text(),'订单状态')]/following-sibling::div//input
        base.click("点击订单状态", "//label[contains(text(),'订单状态')]/following-sibling::div//input")
        # 点击待发货//span[contains(text(),'待发货')]
        base.click("点击待发货", "//span[contains(text(),'待发货')]")
        # 滚动屏幕
        base.scroll_screen("滚动屏幕")
        # 点击查询搜索//span[contains(text(),'查询搜索')]
        base.click("点击查询搜索", "//span[contains(text(),'查询搜索')]")
        # 点击第一条的订单发货(//span[text()='订单发货'])[1]
        base.click("点击第一条的订单发货", "(//span[text()='订单发货'])[1]")
        # 点击选择物流公司//input[@placeholder="请选择物流公司"]
        base.click("点击选择物流公司","//input[@placeholder='请选择物流公司']")
        # 点击顺丰快递//span[text()='顺丰快递']
        base.click("点击顺丰快递","//span[text()='顺丰快递']")
        # 点击确定//span[text()='确定']
        base.click("点击确定","//span[text()='确定']")
        # 点击确定提交(//span[contains(text(),'确定')])[2]
        base.click("点击确定提交","(//span[contains(text(),'确定')])[2]")
Example #7
0
 def test_demo3(self, driver):
     base = baseUI(driver)
     # 赠送积分
     base.send_keys(
         "填写赠送积分",
         "//label[contains(text(),'赠送积分:')]/following-sibling::div//input",
         30)
     # 赠送成长值
     base.send_keys(
         '填写赠送成长值',
         "//label[contains(text(),'赠送成长值:')]/following-sibling::div//input",
         200)
     # 预告商品
     base.click(
         '预告商品',
         "//label[contains(text(),'预告商品')]/following-sibling::div//span")
     # 商品上架
     base.click(
         '点击商品上架',
         "//label[contains(text(),'商品上架')]/following-sibling::div//span")
     time.sleep(2)
     # 滚动窗口
     base.scroll_screen('滚动')
     # 点击特惠促销
     base.click('点击特惠促销', "//span[contains(text(),'特惠促销')]")
     # 选择开始时间 //input[@placeholder="选择开始时间"] 2019-04-10 06:27:04
     base.send_keys('填写开始时间', '//input[@placeholder="选择开始时间"]',
                    '2019-04-10 06:27:04')
     # 下一步 //span[contains(text(),'下一步,填写商品促销')]
     base.click('点击下一步', "//span[text()='下一步,填写商品属性']")
Example #8
0
 def tellst_tianjia(self, driver):
     base = baseUI(driver)
     # 点击优惠券列表
     base.click("点击优惠券列表","//span[contains(text(),'优惠券列表')]")
     # 点击添加
     base.click("点击添加", "(//span[contains(text(),'添加')])[2]")
     # 输入优惠券名称
     base.send_keys("输入优惠券名称", "//label[contains(text(),'优惠券名称')]/following-sibling::div//input",'youhuiquan')
Example #9
0
 def test_demo5(self, driver):
     base = baseUI(driver)
     # 下一步 //span[contains(text(),'完成,提交商品')]
     base.click('点击完成提交', "//span[text()='完成,提交商品']")
     # # 切换弹框
     # driver.switch_to.alert.accept()
     # 弹框点击确定
     time.sleep(2)
     # driver.find_element_by_link_text('确定').click()
     base.click('点击取消', '//span[contains(text(),"取消")]')
Example #10
0
    def test_plfh(self, driver):
        base = baseUI(driver)
        #         打开网址

        driver.get("http://192.168.60.132/#/login")
        #         输入用户名
        base.send_keys("输入用户名", "//input[@name='username']", 'admin')
        #         输入密码
        base.send_keys("输入密码", "//input[@name='password']", '123456')
        #         点击登录

        base.click("登录", "//span[contains(text(),'登录')]")
        # 点击订单
        base.click("订单", '//span[contains(text(),"订单")]')
        # 订单列表
        base.click("订单列表", '//span[contains(text(),"订单列表")]')
        # 订单状态
        base.click(
            "订单状态",
            '//label[contains(text(),"订单状态:")]/following-sibling::div//input')
        # 待发货
        base.click("待发货", '//span[contains(text(),"待发货")]')
        # 查询搜索
        base.click("查询搜索", '//span[contains(text(),"查询搜索")]')
        time.sleep(2)
        # 点击全选框
        base.click("点击全选框", '(//label[@role="checkbox"]/span/span)[1]')
        # 点击批量操作//input[@placeholder="批量操作"]
        base.click("点击批量操作", '//input[@placeholder="批量操作"]')
        # 点击批量发货//span[text()="批量发货"]
        base.click("点击批量发货", '//span[text()="批量发货"]')
        # 点击确定(//span[contains(text(),"确定")])[1]
        base.click("点击确定", '(//span[contains(text(),"确定")])[1]')

        rows = len(driver.find_elements_by_xpath("//tbody/tr"))

        for i in range(1, rows + 1):
            # 点击配送方式//tbody/tr[1]/td[6]//input
            base.click("点击配送方式", '//tbody/tr[{0}]/td[6]//input'.format(i))
            # 选择物流公司(//span[text()="顺丰快递"])[10]
            base.click("选择物流公司", '(//span[text()="顺丰快递"])[10]')
            # 输入物流单号//tbody/tr[1]/td[7]//input
            base.send_keys("输入物流单号", '//tbody/tr[{0}]/td[7]//input'.format(i),
                           '452358767864')
        # 点击确定//span[text()="确定"]
        base.click("点击确定", '//span[text()="确定"]')
        # 点击弹框确定(//span[contains(text(),"确定")])[2]
        base.click("点击弹框确定", '(//span[contains(text(),"确定")])[2]')
        # 获取提示文本框//div[@role="alert"]/p
        text = base.get_text("获取提示文本框", '//div[@role="alert"]/p')
        # 断言
        Assertion.assert_in_text(text, "发货成功")
Example #11
0
    def tes333t_demo2(self,driver):
        base = baseUI(driver)
        

        #打开网址
        driver.get("http://192.168.60.132/#/login")
        #输入用户名//input[@name='username']
        base.send_keys("输入用户名","//input[@name='username']","admin")
        #输入密码//input[@name='password']
        base.send_keys("输入密码","//input[@name='password']", "123456")
        #点击登录(//span[contains(text(),'登录')])[1]
        base.click('点击登录',"(//span[contains(text(),'登录')])[1]")
        base.click('点击商品',"//span[text()='商品']")
        #点击添加商品
        base.click("点击添加商品","//span[text()='添加商品']")
        #点击商品分类
        base.click("点击商品分类","//label[contains(text(),'商品分类')]/following-sibling::div/span")
        #点击服装
        base.click("点击服装","//li[contains(text(),'服装')]")
        #点击外套
        base.click("点击外套","//li[contains(text(),'外套')]")
        #填写商品名称
        base.send_keys("填写商品名称","//label[contains(text(),'商品名称')]/following-sibling::div//input","缺了个口子")
        #填写副标题
        base.send_keys("填写副标题","//label[contains(text(),'副标题')]/following-sibling::div//input","谁啃得")
        #点击商品品牌
        base.click("点击商品品牌","//label[contains(text(),'商品品牌')]/following-sibling::div/div")
        #点击苹果
        base.click("点击苹果","//span[text()='苹果']")
        #滚动窗口
        base.scroll_screen("滚动窗口")
        #点击下一步
        base.click("击下一步","//span[text()='下一步,填写商品促销']")
        #点击下一步
        base.click("点击下一步","//span[text()='下一步,填写商品属性']")
        #上传商品图片
        #base.send_keys("上传商品图片","//input[@name='file']/parent::*","‪D:\\1.png")
        #切换iframe
        base.switch_to_frame("切换到iframe","(//iframe[contains(@id,'vue-tinymce-')])[1]")
        #填写规格参数
        base.send_keys("填写规格参数","//body[@id='tinymce']","测试一下")
        driver.switch_to.default_content()
        #点击下一步
        base.click("点击下一步","//span[contains(text(),'下一步,选择商品关联')]")
        #点击完成商品
        base.click("点击完成商品","//span[contains(text(),'完成,提交商品')]")
        #切换到弹框
        base.click("点击弹框","//span[contains(text(),'确定')]/parent::*")
        time.sleep(1)

        time.sleep(5)
Example #12
0
    def test_demo6(self, driver):
        base = baseUI(driver)
        # 打开网址
        driver.get("http://192.168.60.132/#/login")
        # 输入用户名//input[@name='username']
        base.send_keys("输入用户名", "//input[@name='username']", "admin")
        # 输入密码//input[@name='password']
        base.send_keys("输入密码", "//input[@name='password']", "123456")
        # 点击登录(//span[contains(text(),'登录')])[1]
        base.click('点击登录', "(//span[contains(text(),'登录')])[1]")
        # 点击订单//span[text()='订单']
        base.click("点击订单", "//span[text()='订单']")
        # 点击订单列表(//span[text()='订单列表'])[1]
        base.click("点击订单列表", "(//span[text()='订单列表'])[1]")
        # 点击订单状态//label[contains(text(),'订单状态:')]/following-sibling::div//input
        base.click(
            "点击订单状态",
            "//label[contains(text(),'订单状态:')]/following-sibling::div//input")
        # 点击待发货//span[text()='待发货']
        base.click("点击待发货", "//span[text()='待发货']")
        # 点击搜索查询//span[contains(text(),'查询搜索')]
        base.click("点击搜索查询", "//span[contains(text(),'查询搜索')]")
        #点击全选(//label[@role='checkbox'])[1]
        base.click("点击全选", "(//label[@role='checkbox'])[1]")
        #滚动窗口到最后
        base.scroll_screen('滚动屏幕')
        #点击批量操作//input[@placeholder='批量操作']
        base.click("点击批量操作", "//input[@placeholder='批量操作']")
        #选择批量发货//span[text()='批量发货']
        base.click("选择批量发货", "//span[text()='批量发货']")
        #点击确定//span[contains(text(),'确定')]
        base.click("点击确定", "//span[contains(text(),'确定')]")
        #获取总共有多少行
        rows = len(driver.find_elements_by_xpath("//tbody/tr"))
        #选择物流公司//tbody/tr[1]/td[6]//input
        #选择快递(//span[text()='中通快递'])[1]
        #物流单号//tbody/tr[1]/td[7]//input

        for i in range(1, rows + 1):
            # 选择物流公司//tbody/tr[1]/td[6]//input
            base.click("点击选择物流公司", "//tbody/tr[{0}]/td[6]//input".format(i))
            # 选择快递(//span[text()='中通快递'])[1]
            base.click("选择快递", "(//span[text()='中通快递'])[10]")
            #物流单号//tbody/tr[1]/td[7]//input
            base.send_keys("填写物流单号", "//tbody/tr[{0}]/td[7]//input".format(i),
                           "265688456486")
        time.sleep(2)
        driver.find_element_by_xpath().get_attribute("class")

        pass
Example #13
0
    def test_demo3(self, driver):
        base = baseUI(driver)

        driver.get("http://192.168.60.132/login#/home")
        base.send_keys("输入用户名", "//input[@name='username']", "admin")
        base.send_keys("输入密码", "//input[@name='password']", "123456")
        # 点击登录
        base.click("点击登录", "//span[contains(text(),'登录')]")
        # 点击订单(//span[contains(text(),'订单')])[1]
        base.click("点击订单", "//span[contains(text(),'订单')]")
        # 点击订单列表(//span[contains(text(),'订单列表')]
        base.click("点击订单列表", "//span[contains(text(),'订单列表')]")
        # 点击订单状态//label[contains(text(),'订单状态:')]/following-sibling::div//input
        base.click(
            "点击订单状态",
            "//label[contains(text(),'订单状态:')]/following-sibling::div//input")
        # 点击待发货//span[contains(text(),'待发货')]
        base.click("点击代发货", "//span[contains(text(),'待发货')]")
        # 点击查询搜索//span[contains(text(),'查询搜索')]
        base.click("点击查询搜索", "//span[contains(text(),'查询搜索')]")
        # 点击勾选//div/div[2]/section/div/div[3]/div/div[2]/table/thead/tr/th[1]/div/label/span/span
        base.click("点击多选", "//section//div//thead//span/span")
        #批量发货//div[2]/section/div/div[4]/div/div[1]/input
        base.click("批量发货", "//div[2]/section/div/div[4]/div/div[1]/input")
        # 点击批量发货//span[contains(text(),'批量发货')]
        base.click("批量发货", "//span[contains(text(),'批量发货')]")
        # 点击确定//span[contains(text(),'确定')]
        base.click("点击确定", "//span[contains(text(),'确定')]")
        # 获取有几行
        rows = len(driver.find_elements_by_xpath("//tbody/tr"))
        # 选择物流公司//tbody/tr[1]/td[6]//input
        # 选择快递(//span[text()='顺丰快递'])[1]
        # 物流单号//tbody/tr[1]/td[7]//input
        for i in range(1, rows + 1):
            # 选择物流公司(//tbody/tr[1]/td[6]//input)
            base.click("选择物流公司", "//tbody/tr[{0}]/td[6]//input".format(i))
            # 选择快递(//span[text()='中通顺丰快递'])[10]
            base.click("选择快递",
                       "(//span[contains(text(),'顺丰快递')])[10]".format(i))
            # 物流单号//tbody/tr[1]/td[7]//input
            base.send_keys("物流单号", "//tbody/tr[{0}]/td[7]//input".format(i),
                           "1545648751454545")
        # 点击确定//span[contains(text(),'确定')]
        base.click("点击确定", "//span[contains(text(),'确定')]")
        # 点击确定(//span[contains(text(),'确定')])[2]
        base.click("点击确定", "(//span[contains(text(),'确定')])[2]")

        xpath = driver.find_element_by_xpath("//div[@role='alert']/p")
        assertions = Assertions()
        assertions.assert_in_text(xpath.text, '发货成功!')
 def test_demo3(self,driver):
        base = baseUI(driver)
        # 输入网址
        driver.get("http://192.168.60.132/#/login")
        # 输入用户名
        base.send_keys('输入用户名', '//input[@name="username"]', 'admin')
        # 密码
        base.send_keys('密码', '//input[@name="password"]', '123456')
        # 点击登录
        base.click('点击登录', "//span[contains(text(),'登录')]")
        # 点击营销
        base.click('点击营销', "//span[contains(text(),'营销')]")
        # 点击优惠券列表
        base.click ("点击优惠券列表","//span[contains(text(),'优惠券列表')]")
        # 点击第一条的编辑
        base.click("点击第一条的编辑","//span[contains(text(),'编辑')][1]")
        # 点击优惠券类型://label[contains(text(),'优惠券类型')]/following-sibling::div//input
        base.click("点击优惠券类型","//label[contains(text(),'优惠券类型')]/following-sibling::div//input")
        # 点击会员赠送 // span[text() = '会员赠券']
        base.click("点击会员赠送", "// span[text() = '会员赠券']")
        # 优惠券名称:(//input[@type="text"])[2]
        base.send_keys("优惠券名称", "(//input[@type='text'])[2]", "九亿少女的梦")
        # 点击适用平台://label[contains(text(),'适用平台')]/following-sibling::div//input
        base.click("点击适用平台", "//label[contains(text(),'适用平台')]/following-sibling::div//input")
        # 点击pc平台 // span[text() = 'PC平台']
        base.click("点击pc平台", "// span[text() = 'PC平台']")
        # 总发行量://label[contains(text(),'总发行量')]/following-sibling::div//input
        base.send_keys("总发行量", "//label[contains(text(),'总发行量')]/following-sibling::div//input", "999999")
        # 面额://label[contains(text(),'面额')]/following-sibling::div//input
        base.send_keys("面额", "//label[contains(text(),'面额')]/following-sibling::div//input", "99999999")
        #  每人限领://label[contains(text(),'每人限领')]/following-sibling::div//input
        base.send_keys("每人限领", "//label[contains(text(),'每人限领')]/following-sibling::div//input", "1")
        # 使用门槛://label[contains(text(),'使用门槛')]/following-sibling::div//input
        base.send_keys("使用门槛", "//label[contains(text(),'使用门槛')]/following-sibling::div//input","110")
        # 有效期:
        # 点击可使用商品://span[contains(text(),'指定商品')]
        base.click("点击可使用商品", "//span[contains(text(),'指定商品')]")
        # 备注输入
        base.send_keys("备注输入","//textarea[@rows=5]","我有98k")
        # 点击提交
        base.click("点击提交","//span[text()='提交']")
        # 点击确定
        base.click("点击确定","//span[contains(text(),'确定')]")
        # 断言
        print(driver.page_source)
        text = base.get_text("获取页面展示文本", "//div[@role='alert']/p")
        Assertion.assert_in_text('text','修改成功')
        # print(text)
        time.sleep(4)
Example #15
0
    def test_demo3(self, driver):
        base = baseUI(driver)
        driver.get("http://192.168.60.132/#/login")
        # 输入用户名
        # 通过xpath定位元素
        base.send_keys("请输入用户名", "//input[@name='username']", "admin")
        # username = driver.find_element_by_xpath("//input[@name='username']")
        # #清空一下
        # username.clear()
        # #输入登录数据
        # username.send_keys("admin")
        base.send_keys("请输入密码", "//input[@name='password']", "123456")
        # password = driver.find_element_by_xpath("//input[@name='password']")
        # password.clear()
        # password.send_keys("123456")
        # 点击登录按钮 "//span[contains(text(),'登录')]"
        base.click("点击登录按钮", "//span[contains(text(),'登录')]")
        # 点击订单
        base.click("点击营销按钮", "//span[contains(text(),'订单')]")
        # 点击订单列表
        base.click("点击优惠券列表", "//span[(text()='订单列表')]")
        # 点击订单分类
        base.click(
            "点击订单状态",
            "//label[contains(text(),'订单状态')]/following-sibling::div//input")
        # 点击待发货
        base.click("点击待发货", "//span[(text()='待发货')]")
        # 点击查询搜索
        base.click("点击查询搜索", "//span[contains(text(),'查询搜索')]")
        base.click("点击选择条数", "(//div/div/input[contains(text(),'')])[8]")
        base.click("点击选择5条", "//span[text()='5条/页']")
        base.click("点击全选编号", "//label[@role='checkbox']")
        base.click("点击批量操作", "//input[@placeholder='批量操作']")
        base.click("点击批量发货", "//span[text()='批量发货']")
        base.click("点确定", "//span[contains(text(),'确定')]")
        #获取有多少行
        a = len(driver.find_elements_by_xpath("//tbody/tr"))

        for i in range(1, a + 1):
            base.click("配送方式", "//tbody/tr[{0}]/td[6]".format(i))
            base.click("点顺丰快递", "(//span[text()='顺丰快递'])[5]")
            base.send_keys("点击输入订单编号",
                           "//tbody/tr[{0}]/td[7]//input".format(i),
                           "666666666666666")

        base.click("点击确定", "//span[text()='确定']")
        base.click("在次点击确定", "(//span[contains(text(),'确定')])[2]")

        driver.quit()
Example #16
0
    def test_demo1(self, driver):
        base = baseUI(driver)

        # 打开网址
        driver.get("http://192.168.60.132/#/login")
        # 输入用户名
        base.send_keys('输入用户名', "//input[@name='username']", 'admin')

        # 输入密码
        base.send_keys('输入密码', "//input[@name='password']", '123456')
        # 点击登录
        base.click("点击登录", "//span[contains(text(),'登录')]")
        # 点击商品
        base.click("点击商品", "// span[contains(text(), '商品')]")
        # 点击添加商品
        base.click("添加商品", "(//span[contains(text(),'添加商品')])[1]")
Example #17
0
    def test_demo(self, driver):
        base = baseUI(driver)

        driver.get("http://192.168.60.132/login#/home")
        base.send_keys("输入用户名", "//input[@name='username']", "admin")
        base.send_keys("输入密码", "//input[@name='password']", "123456")
        # 点击登录
        base.click("点击登录", "//span[contains(text(),'登录')]")
        #         点击营销//span[text()='营销']

        base.click("点击营销", "//span[text()='营销']")
        # 点击优惠券列表//span[text()='优惠券列表']
        base.click("点击优惠券列表", "//span[text()='优惠券列表']")
        # 点击编辑
        base.click("点击编辑", "(//span[contains(text(),'编辑')])[1]")
        #填写优惠券名称://label[contains(text(),'优惠券名称:')]/following-sibling::div//input
        base.send_keys(
            "填写优惠券名称",
            "//label[contains(text(),'优惠券名称:')]/following-sibling::div//input",
            "全场不通用")
        # 总发行量://label[contains(text(),'总发行量:')]/following-sibling::div//input
        base.send_keys(
            "填写总发行量",
            "//label[contains(text(),'总发行量:')]/following-sibling::div//input",
            "100")
        # 面额://label[contains(text(),'面额:')]/following-sibling::div//input
        base.send_keys(
            "填写面额",
            "//label[contains(text(),'面额:')]/following-sibling::div//input",
            "20")
        # 使用门槛://label[contains(text(),'使用门槛:')]/following-sibling::div//input
        base.send_keys(
            "填写使用门槛",
            "//label[contains(text(),'使用门槛:')]/following-sibling::div//input",
            "1000")
        # 点击提交//span[contains(text(),'提交')]
        base.click("点击提交", "//span[contains(text(),'提交')]")
        # 点击确定//span[contains(text(),'确定')]
        base.click("点击确定", "//span[contains(text(),'确定')]")
        # 断言
        # print(driver.page_source)
        xpath = driver.find_element_by_xpath("//div[@role='alert']/p")
        print(xpath)
        assertions = Assertions()
        # assertions.assert_in_text(driver.page_source, '修改成功')
        assertions.assert_in_text(xpath.text, '修改成功')
 def test_demo2(self,driver):
        base = baseUI(driver)
        # 输入网址
        driver.get("http://192.168.60.132/#/login")
        # 输入用户名
        base.send_keys('输入用户名', '//input[@name="username"]', 'admin')
        # 密码
        base.send_keys('密码', '//input[@name="password"]', '123456')
        # 点击登录
        base.click('点击登录', "//span[contains(text(),'登录')]")
        # 点击商品
        base.click('点击商品', "//span[contains(text(),'商品')]")
        # 点击添加商品
        base.click('点击添加商品', '//span[contains(text(), "添加商品")]')
        # 商品分类
        base.click('商品分类', "//label[contains(text(),'商品分类')]/following-sibling::div/span")
        # 手机数码
        base.click('手机数码', "//li[contains(text(),'手机数码')]")
        # 智能设备
        base.click('智能设备', "//li[contains(text(),'智能设备')]")
        # 商品名称
        base.send_keys('商品名称', "//label[contains(text(),'商品名称')]/following-sibling::div//input", '我有98k')
        # 副标题
        base.send_keys('副标题', "//label[contains(text(),'副标题')]/following-sibling::div//input", '大哥别杀我')
        # 商品品牌
        base.click('商品品牌', "//label[contains(text(),'商品品牌')]/following-sibling::div//input")
        # 点击苹果
        base.click('点击苹果', "//span[contains(text(),'苹果')]")
        # 滚动窗口
        base.scroll_screen("滚动窗口")
        # 点击下一步
        base.click("击下一步", "//span[text()='下一步,填写商品促销']")
        # 点击下一步
        base.click("点击下一步", "//span[text()='下一步,填写商品属性']")
        # 上传商品图片
        # base.send_keys("上传商品图片","//input[@name='file']/parent::*","‪D:\\1.png")
        # 切换iframe
        base.switch_to_frame("切换到iframe", "(//iframe[contains(@id,'vue-tinymce-')])[1]")
        # 填写规格参数
        base.send_keys("填写规格参数", "//body[@id='tinymce']", "我要AWM")
        driver.switch_to.default_content()
        # 点击下一步
        base.click("点击下一步", "//span[contains(text(),'下一步,选择商品关联')]")
        time.sleep(2)
Example #19
0
    def test_demo4(self, driver):
        base = baseUI(driver)
        # 属性类型
        base.click(
            '属性类型',
            '//label[contains(text(),"属性类型:")]/following-sibling::div//input')

        # 商品规格
        # 切换iframe
        iframe = driver.find_element_by_xpath(
            "(//iframe[contains(id,vue-tinymce-)])[1]")
        driver.switch_to_frame(iframe)
        # 填写规格参数
        base.send_keys("填写规格参数", "//body[@id='tinymce']", "123456")
        driver.switch_to_default_content()
        # 下一步 //span[contains(text(),'下一步,选择商品关联')]
        base.click('点击下一步', "//span[contains(text(),'下一步,选择商品关联')]")
        #下滑
        base.scroll_screen('滚动')
Example #20
0
    def test_122(self, driver):
        base = baseUI(driver)
        # 打开网址
        driver.get("http://192.168.60.132/#/login")
        # 输入用户名
        base.send_keys('输入用户名', "//input[@name='username']", 'admin')
        # 输入密码
        base.send_keys('输入密码', "//input[@name='password']", '123456')
        # 点击登录
        base.click("点击登录", "//span[contains(text(),'登录')]")
        # 点击订单
        base.click("点击订单", "//span[contains(text(),'订单')]")
        # 点击订单列表
        base.click("点击订单列表", "//span[contains(text(),'订单列表')]")
        # 下滑
        base.scroll_screen('下滑')
        # 点击订单状态
        base.click(
            "点击订单状态",
            "//label[contains(text(),'订单状态')]/following-sibling::div//input")
        # 点击待发货
        base.click("点击待发货", "//span[contains(text(),'待发货')]")
        # 点击查找
        base.click("点击查找", "//span[contains(text(),'查询搜索')]")
        # 编号全选
        base.click("编号全选", "(//label[@role='checkbox'])[1]")
        # 点击批量操作
        base.click("点击批量操作", "//input[@placeholder='批量操作']")
        # 点击批量发货
        base.click("点击批量发货", "//span[contains(text(),'批量发货')]")
        # 点击确定
        base.click("点击确定", "//span[contains(text(),'确定')]")
        #输入发货公司 //tbody/tr[1]td[%s]%i
        aint = 20190404
        len1 = len(driver.find_elements_by_xpath("//tbody/tr"))
        for i in range(1, len1 + 1):
            # num = base.get_text('获取编号', "//tbody/tr[1]//div")

            base.click("点击物流公司", "//tbody/tr[{0}]/td[6]//input".format(i))
            base.click("点击顺丰", "(//span[text()= '顺丰快递'])[10]")
            aint = aint + 1
            base.send_keys("输入快递单号", "//tbody/tr[{0}]/td[7]//input".format(i),
                           aint)
Example #21
0
    def test_login(self,driver):
        base = baseUI(driver)
        #打开网址
        driver.get("http://192.168.1.128:8090/#/login")
        #输入用户名//input[@name='username']
        base.send_keys('输入用户名',"//input[@name='username']",'admin')
        #输入密码//input[@name='password']
        base.send_keys('输入密码', "//input[@name='password']", '123456')
        #点击登录(//span[contains(text(),'登录')])[1]
        base.click("点击登录","(//span[contains(text(),'登录')])[1]")
        assert "首页" in driver.page_source
        #点击订单//span[@slot="title" and contains(text(),'订单')]
        base.click("点击订单","//span[@slot='title' and contains(text(),'订单')]")
        #点击订单列表(//span[contains(text(),'订单列表')])[1]
        base.click("点击订单列表","(//span[contains(text(),'订单列表')])[1]")
        #点击订单状态//label[contains(text(),'订单状态:')]/following-sibling::div//input
        base.click("点击订单状态","//label[contains(text(),'订单状态:')]/following-sibling::div//input")
        #选择待发货//span[contains(text(),'待发货')]
        base.click("选择待发货","//span[contains(text(),'待发货')]")
        #点击查询搜索//span[contains(text(),'查询搜索')]
        base.click("点击查询搜索","//span[contains(text(),'查询搜索')]")
        #选择第一条订单,点击订单发货//tbody/tr[1]/td[last()]//span[contains(text(),'订单发货')]
        base.click("选择第一条订单,点击订单发货","//tbody/tr[1]/td[last()]//span[contains(text(),'订单发货')]")
        #选择配送方式
        #点击请选择物流公司//tbody/tr[1]/td[last()-1]//input
        base.click("点击请选择物流公司","//tbody/tr[1]/td[last()-1]//input")

        #选择顺丰//span[contains(text(),'顺丰快递')]
        base.click("选择顺丰","//span[contains(text(),'顺丰快递')]")
        #输入物流单号//tbody/tr[1]/td[last()]//input
        base.send_keys("输入物流单号","//tbody/tr[1]/td[last()]//input","129031208391")
        #点击确定(//span[contains(text(),'确定')])[1]
        base.click("点击确定","(//span[contains(text(),'确定')])[1]")
        #点击确认提示(//span[contains(text(),'确定')])[2]
        base.click("点击确认提示","(//span[contains(text(),'确定')])[2]")
        #获取提示文本并断言 //div[@role='alert']/p
        actual = base.get_text("获取提示文本", "//div[@role='alert']/p")
        assert "发货成功" in actual

        sleep(2)
Example #22
0
    def test_demo2(self, driver):
        base = baseUI(driver)
        # 点击商品分类
        base.click("点击商品分类", "//span[@class='el-cascader__label']")
        # 点击商品分类点击服装
        base.click("点击服装", "// li[contains(text(), '服装')]")
        # 点击二级分类外套
        base.click("点击外套分类", "// li[contains(text(), '外套')]")
        # 填写商品名称
        base.send_keys(
            "填写商品名称",
            "//label[contains(text(),'商品名称:')]/following-sibling::div//input",
            '夏装')
        time.sleep(2)

        # 写副标题
        base.send_keys(
            "副标题",
            "//label[contains(text(),'副标题:')]/following-sibling::div//input",
            '双十一')
        time.sleep(2)

        # 点击商品品牌
        base.click("点击商品品牌", '//input[@placeholder="请选择品牌"]')
        time.sleep(2)

        # 点击小米
        base.click("选择小米", "// span[contains(text(), '小米')]")
        time.sleep(2)
        # 下滑
        js = "var q=document.documentElement.scrollTop=10000"
        driver.execute_script(js)
        # 填写商品介绍
        base.send_keys(
            "填写商品介绍",
            "//label[contains(text(),'商品介绍')]/following-sibling::div//textarea",
            '双十一上架')
        # 下一步
        base.click("点击下一步", "//span[text()='下一步,填写商品促销']")
    def test_start(self, driver):
        # 确定chromedriver.exe的位置
        # driver_path = os.path.join(os.path.dirname(__file__), "../chromedriver/chromedriver.exe")
        # 打开浏览器
        # driver = webdriver.Chrome(driver_path)
        # driver.maximize_window()  # 最大化浏览器
        # driver.set_page_load_timeout(10)  # 网页加载超时为10s
        # driver.set_script_timeout(10)  # js脚本运行超时10s
        # driver.implicitly_wait(10)  # 元素查找超时时间10s
        base = baseUI(driver)
        #打开网址
        driver.get('http://192.168.1.137/#/login')
        #定位用户名输入框//input[@name='username']
        # a = driver.find_element_by_xpath("//input[@name='username']")
        # a.clear()
        # #输入用户名'admin'
        # a.send_keys('admin')
        # #定位密码输入框//input[@name="password"]
        # b = driver.find_element_by_xpath('//input[@name="password"]')
        # #输入密码'123456'
        # b.send_keys('123456')
        # time.sleep(2)
        #定位登录并点击//span[contains(text(),' 登录')]
        # driver.find_element_by_xpath('//span[contains(text(),"登录")]').click()
        base.click('点击登录按钮', '//span[contains(text(),"登录")]')

        # driver.find_element_by_xpath("//span[contains(text(),'残忍拒绝')]").click()
        base.click('点击残忍拒绝', "//span[contains(text(),'残忍拒绝')]")
        time.sleep(2)
        # driver.find_element_by_xpath('//span[contains(text(),"登录")]').click()
        base.click('点击登录按钮', '//span[contains(text(),"登录")]')

        time.sleep(2)
        #断言
        assert "首页" in driver.page_source
        pass
Example #24
0
 def test_test_demo(self, driver):
     base = baseUI(driver)
     driver.get('https://www.baidu.com/')
Example #25
0
    def test_testdemo2(self, driver):
        base = baseUI(driver)
        # # 打开浏览器
        # # 确定chromedriver.exe的位置
        # driver_path = os.path.join(os.path.dirname(__file__), "../../ChromDriver/chromedriver.exe")
        # print(driver_path)
        # driver = webdriver.Chrome(driver_path)
        # driver.maximize_window()  # 最大化浏览器
        # driver.implicitly_wait(8)  # 设置隐式时间等待
        # time.sleep(2)
        # 打开网址
        base.driver.get("http://192.168.60.132/home#/login")
        # 输入用户名
        base.send_keys('输入用户名', '//input[@name="username"]', 'admin')
        # 输入密码
        base.send_keys('输入密码', "//input[@name = 'password']", '123456')
        # 点击登录
        base.click('点击登录', "//span[contains(text(),'登录')]")
        # 点击商品
        base.click('点击商品', "//span[contains(text(),'商品')]")
        # 点击添加商品
        base.click('点击添加商品', "//span[contains(text(),'添加商品')]")
        # 点击商品分类_下拉框
        base.click('点击商品分类', "//span[@class='el-cascader__label']")
        #选择下拉框_服装
        base.click('选择服装', "//li[contains(text(),'服装')]")
        # 选择下拉框_服装_外套
        base.click('选择外套', "//li[contains(text(),'外套')]")
        # 输入商品名称
        base.send_keys(
            '输入商品名称',
            "//label[contains(text(),'商品名称:')]/following-sibling::div//input",
            '海澜之家')
        # 副标题
        base.send_keys(
            '副标题',
            "//label[contains(text(),'副标题:')]/following-sibling::div//input",
            '海澜')
        # 商品品牌
        base.click('商品品牌', "//input[@placeholder='请选择品牌']")
        # 选择品牌_海澜之家
        base.click('选择品牌', "//span[contains(text(),'海澜之家')]")
        # 点击查询搜索
        base.click('点击查询搜索', "//span[contains(text(),'下一步,填写商品促销')]")

        # 赠送积分
        base.send_keys(
            '输入赠送积分',
            "//label[contains(text(),'赠送积分:')]/following-sibling::div//input",
            100)
        # 赠送成长值
        base.send_keys(
            '输入赠送成长值',
            "//label[contains(text(),'赠送成长值:')]/following-sibling::div//input",
            101)
        # 积分购买限制
        base.send_keys(
            '输入积分购买限制',
            "//label[contains(text(),'积分购买限制:')]/following-sibling::div//input",
            1000)
        # 预告商品
        base.click(
            '选择预告商品',
            "//label[contains(text(),'预告商品:')]/following-sibling::div//span")
        # 商品上架
        base.click(
            '商品上架',
            "//label[contains(text(),'商品上架:')]/following-sibling::div//span")
        # 商品推荐
        base.click(
            '新品',
            "(//span[contains(text(),'新品')]/following-sibling::div/span)[2]")
        # 服务保证
        base.click('选择服务保证', "//span[contains(text(),'免费包邮')]")
        # 详细页标题
        base.send_keys(
            '详细页标题',
            "//label[contains(text(),'详细页标题:')]/following-sibling::div//input",
            '标题')
        # 详细页描述
        base.send_keys(
            '详细页描述',
            "//label[contains(text(),'详细页描述:')]/following-sibling::div//input",
            '海澜之家')
        # 商品关键字
        base.send_keys(
            '商品关键字',
            "//label[contains(text(),'商品关键字:')]/following-sibling::div//input",
            '海')
        # 商品备注
        base.send_keys(
            '商品备注',
            "//label[contains(text(),'商品备注:')]/following-sibling::div//textarea",
            '之家')
        # 点击优惠券方式
        base.click('点击优惠券方式', "//span[contains(text(),'无优惠')]")
        # 下一步,填写商品属性
        base.click('点击下一步', "//span[contains(text(),'下一步,填写商品属性')]")

        # 点击商品属性类型
        base.click(
            '点击商品属性类型',
            "//label[contains(text(),'属性类型')]/following-sibling::div//input")
        # 点击商品属性类型___T恤
        base.click('点击服装-T恤', "//span[contains(text(),'服装-T恤')]")
        # 点击商品规格_输入增加颜色
        base.send_keys(
            '增加颜色',
            "//label[contains(text(),'商品规格:')]/following-sibling::div//input",
            'red')
        # 点击商品规格_输入增加颜色_点击增加
        base.click('点击增加', "//span[contains(text(),'增加')]")
        # 点击选择尺寸"M"
        base.click('点击尺寸', "//span[contains(text(),'M')]")
        # 填写商品编号
        base.send_keys(
            '填写商品编号',
            "//div[contains(text(),'商品编号:')]/following-sibling::div/input",
            1314)
        # 点击适用季节
        base.click(
            '点击适用季节',
            "//div[contains(text(),'适用季节:')]/following-sibling::div//input")
        # 点击适用季节_夏季
        base.click('点击夏季', "//span[contains(text(),'夏季')]")
        # 点击适用人群
        base.click(
            '点击适用人群',
            "//div[contains(text(),'适用人群:')]/following-sibling::div//input")
        # 点击适用人群_点击儿童
        base.click('点击夏季', "//span[contains(text(),'儿童')]")
        # 点击上市时间
        base.click(
            '点击上市时间',
            "//div[contains(text(),'上市时间:')]/following-sibling::div//input")
        # 点击上市时间_2017年秋
        base.click('点击2017年秋', "//span[contains(text(),'2017年秋')]")
        # 点击袖长
        base.click(
            '点击袖长',
            "//div[contains(text(),'袖长:')]/following-sibling::div//input")
        # 点击袖长_短袖
        base.click('点击长袖', "//span[contains(text(),'长袖')]")
        # 点击规格参数

        # 点击下一步,选择商品关联
        base.click('点击下一步', "//span[contains(text(),'下一步,选择商品关联')]")

        # 营销_优惠券列表_第一个编辑
        # 点击营销
        base.click('点击营销', "//span[contains(text(),'营销')]")
        # 点击优惠券列表
        base.click('点击优惠券列表', "//span[contains(text(),'优惠券列表')]")
        # 点击第一条_编辑
        base.click('点击编辑', "//span[contains(text(),' 编辑')]")
        # 点击选择优惠券类型
        base.click(
            '点击选择优惠券类型',
            "//label[contains(text(),'优惠券类型:')]/following-sibling::div//input")
        # 点击选择全场赠券
        base.click('点击选择全场赠券', "//span[contains(text(),'全场赠券')]")
        # 输入优惠券名称
        base.send_keys(
            '点击选择优惠券名称',
            "//label[contains(text(),'优惠券名称:')]/following-sibling::div//input",
            '通用券')
        # 点击选择适用平台
        base.click(
            '点击选择适用平台',
            "//label[contains(text(),'适用平台:')]/following-sibling::div//input")
        # 点击选择全平台
        base.click('点击选择全平台', "//span[contains(text(),'全平台')]")
        # 输入总发行量
        base.send_keys(
            '输入总发行量',
            "//label[contains(text(),'总发行量:')]/following-sibling::div//input",
            250)
        # 输入面额
        base.send_keys(
            '输入面额',
            "//label[contains(text(),'面额:')]/following-sibling::div//input",
            250)
        # 输入没人限领
        base.send_keys(
            '输入没人限领',
            "//label[contains(text(),'每人限领:')]/following-sibling::div//input",
            1)
        # 输入使用门槛
        base.send_keys(
            '输入使用门槛',
            "//label[contains(text(),'使用门槛:')]/following-sibling::div//input",
            200)
        # 点击有效期
        # base.click('点击有效期',"//label[contains(text(),'有效期:')]/following-sibling::div//input")
        # 点击选择2019.4.8号
        # base.click('选择8号',"//span[contains(text(),'8')][1]")
        # 点击可使用商品_全场通用
        base.click(
            '点击全场通用',
            "//label[contains(text(),'可使用商品:')]/following-sibling::div//span")
        # 输入备注内容
        base.send_keys(
            '输入备注内容',
            "//label[contains(text(),'备注:')]/following-sibling::div//textarea",
            '满200减250')
        # 点击提交按钮
        base.click('点击提交按钮', "//span[contains(text(),'提交')]")
        # 点击确定按钮
        base.click('点击确定按钮', "//span[contains(text(),'确定')]")
        print(driver.page_source)
        text = base.get_text("获取页面展示文本", "//div[@role='alert']/p")

        Assertions.assert_in_text(text, "修改成功")
        time.sleep(4)
Example #26
0
    def test_testdemo1(self, driver, xpath=None):
        base = baseUI(driver)

        #打开网址
        driver.get("http://192.168.60.132/#/login")
        #输入用户名
        #通过xpath定位元素
        base.send_keys("请输入用户名", "//input[@name='username']", "admin")
        # username = driver.find_element_by_xpath("//input[@name='username']")
        # #清空一下
        # username.clear()
        # #输入登录数据
        # username.send_keys("admin")
        base.send_keys("请输入密码", "//input[@name='password']", "123456")
        # password = driver.find_element_by_xpath("//input[@name='password']")
        # password.clear()
        # password.send_keys("123456")
        #点击登录按钮 "//span[contains(text(),'登录')]"
        base.click("点击登录按钮", "//span[contains(text(),'登录')]")

        # 点击商品按钮
        base.click("点击商品按钮", "//span[contains(text(),'商品')]")
        # yingxiao = driver.find_element_by_xpath("//span[contains(text(),'商品')]")
        # yingxiao.click()
        # time.sleep(1)
        # #点击添加商品

        youhuiqueliebiao = driver.find_element_by_xpath(
            "//span[contains(text(),'添加商品')]")
        youhuiqueliebiao.click()
        #
        anniu1 = driver.find_element_by_xpath(
            "//label[contains(text(),'商品分类')]/following-sibling::div//span")
        anniu1.click()
        time.sleep(1)
        #
        anniu2 = driver.find_element_by_xpath("//li[contains(text(),'手机数码')]")
        anniu2.click()
        time.sleep(1)
        #
        anniu3 = driver.find_element_by_xpath("//li[contains(text(),'手机通讯')]")
        anniu3.click()
        time.sleep(1)
        #
        spmc = driver.find_element_by_xpath(
            "//label[contains(text(),'商品名称')]/following-sibling::div//input")
        spmc.clear()
        spmc.send_keys("华为")
        time.sleep(1)
        #
        fbt = driver.find_element_by_xpath(
            "//label[contains(text(),'副标题')]/following-sibling::div//input")
        fbt.clear()
        fbt.send_keys("华为P20Pro")
        time.sleep(1)
        #
        anniu4 = driver.find_element_by_xpath(
            "//label[contains(text(),'商品品牌')]/following-sibling::div//input")
        anniu4.click()
        time.sleep(1)
        #
        anniu5 = driver.find_element_by_xpath(
            "(//div/ul/li[contains(text(),'')])[26]")
        anniu5.click()
        time.sleep(1)
        #下一步,填写商品促销
        base.click("下一步,填写商品促销", "//span[(text()='下一步,填写商品促销')]")
        # driver.find_element_by_xpath("//span[(text()='下一步,填写商品促销')]").click()
        #
        # #填写赠送积分 //label[contains(text(),'赠送积分')]/following-sibling::div//input
        # baseui.send_keys( "//label[contains(text(),'赠送积分')]/following-sibling::div//input", "111")
        base.send_keys(
            "填写赠送积分",
            "//label[contains(text(),'赠送积分')]/following-sibling::div//input",
            "111")
        base.send_keys(
            "赠送成长值",
            "//label[contains(text(),'赠送成长值')]/following-sibling::div//input",
            "222")
        base.send_keys(
            "积分购买限制",
            "//label[contains(text(),'积分购买限制')]/following-sibling::div//input",
            "333")
        # # 点击特惠促销  //span[contains(text(),'特惠促销')]
        base.click("点击特惠促销", "//span[contains(text(),'特惠促销')]")
        base.click("下一步,填写商品属性", "//span[(text()='下一步,填写商品属性')]")
        #点击属性类型 //input[@placeholder="请选择属性类型"]
        base.click("点击属性类型", "//input[@placeholder='请选择属性类型']")
        #点击手机数码-手机通讯
        base.click("手机数码-手机通讯", "//span[text()='手机数码-手机通讯']")
        #给颜色输入框输值
        base.send_keys(
            "给颜色输入框输值",
            "(//label[contains(text(),'商品规格')]/following-sibling::div//input)[1]",
            "极光色")
        base.scroll_screen("滚动窗口")

        iframe = driver.find_element_by_xpath(
            "(//iframe[contains(@id,'vue-tinymce-')])[1]")
        driver.switch_to.frame(iframe)

        base.send_keys(
            "随便填值", "(//body[@id='tinymce'])[1]",
            "华为手机发布了最新旗舰手机P20系列宣布由“神奇女侠”盖尔·加朵担任东北欧地区代言人并放出了一支由她主演的P20 Pro大片《See More》。"
        )
        driver.switch_to.default_content()
        time.sleep(1)
        base.click("下一步,选择商品关联", "//span[(text()='下一步,选择商品关联')]")
        time.sleep(2)
        abc = "//div[@divrole='alert']/p[contains(text(),'修改成功')]"

        driver.quit()
Example #27
0
 def test_demo5(self,driver):
     base = baseUI(driver)
     # 打开网址
     # driver.get("http://192.168.60.132/#/login")
     # # 输入用户名//input[@name='username']
     # base.send_keys("输入用户名", "//input[@name='username']", "admin")
     # # 输入密码//input[@name='password']
     # base.send_keys("输入密码", "//input[@name='password']", "123456")
     # # 点击登录(//span[contains(text(),'登录')])[1]
     # base.click('点击登录', "(//span[contains(text(),'登录')])[1]")
     #点击订单//span[text()='订单']
     base.click("点击订单","//span[text()='订单']")
     #点击订单列表(//span[text()='订单列表'])[1]
     base.click("点击订单列表", "(//span[text()='订单列表'])[1]")
     #点击订单状态//label[contains(text(),'订单状态:')]/following-sibling::div//input
     base.click("点击订单状态", "//label[contains(text(),'订单状态:')]/following-sibling::div//input")
     #点击待发货//span[text()='待发货']
     base.click("点击待发货", "//span[text()='待发货']")
     #点击搜索查询//span[contains(text(),'查询搜索')]
     base.click("点击搜索查询", "//span[contains(text(),'查询搜索')]")
     #记录第一条的编号//tbody/tr[1]/td[2]/div
     num = base.get_text('获取编号',"//tbody/tr[1]/td[2]/div")
     order_num = base.get_text("获取订单编号","//tbody/tr[1]/td[3]/div")
     #点击第一条订单发货//tbody/tr[1]/td[10]/div/button[3]
     base.click("点击第一条订单发货","//tbody/tr[1]/td[10]/div/button[3]")
     #点击配送方式//input[@placeholder='请选择物流公司']
     base.click("点击配送方式","//input[@placeholder='请选择物流公司']")
     #点击圆通快递//span[text()='圆通快递']
     base.click("点击圆通快递","//span[text()='圆通快递']")
     #输入物流单号//tbody/tr/td[7]//input
     base.send_keys("输入物流单号","//tbody/tr/td[7]//input","123456789")
     #点击确定//span[text()='确定']
     base.click("点击确定","//span[text()='确定']")
     #确认(//span[contains(text(),'确定')])[2]
     base.click("确认","(//span[contains(text(),'确定')])[2]")
     #获取提示框文本//div[@role='alert']/p
     text = base.get_text("获取提示框文本","//div[@role='alert']/p")
     #断言
     Assertion.assert_in_text(text,'发货成功')
     # 点击订单状态//label[contains(text(),'订单状态:')]/following-sibling::div//input
     base.click("点击订单状态", "//label[contains(text(),'订单状态:')]/following-sibling::div//input")
     # 点击已发货//span[text()='待发货']
     base.click("点击已发货", "//span[text()='已发货']")
     #输入订单编号//input[@placeholder='订单编号']
     base.send_keys("输入订单编号","//input[@placeholder='订单编号']",order_num)
     # 点击搜索查询//span[contains(text(),'查询搜索')]
     base.click("点击搜索查询", "//span[contains(text(),'查询搜索')]")
     #定位到刚才发货的订单
     time.sleep(1)
     #通过xpath定位到一组元素,存到一个list中
     nums = driver.find_elements_by_xpath("(//tbody)[1]/tr/td[2]")
     #存放是否能找到编号 找到true  未找到 false
     b = False
     #遍历上边的list
     for n in nums:
         #n.text取出元素的可视文本
         print(n.text)
         #判断可视文本是否与发货订单的编号相同
         if n.text == num:
             #如果相同,就讲true赋值给b
             b = True
     #断言,订单状态转换是否正确
     assert True == b
     time.sleep(3)
Example #28
0
    def test_111(self, driver):
        base = baseUI(driver)
        driver.get("http://10.10.10.149")  # 运营
        base.send_keys('输入用户名', '//input[@name="username"] ', 'admin')
        base.send_keys('输入密码', '//input[@name="password"] ', '111111')
        base.click('点击登录', "//span[contains(text(),'登录')]")
        base.click('点击运输相关配置', "//span[contains(text(),'运输相关配置')]")
        base.click('点击运输类型', "//span[contains(text(),'运输类型')]")
        base.send_keys('输入代码', '(//input[@class="el-input__inner"])[3]',
                       'X222')
        # base.send_keys('输入代码','//*[@id="app"]/div/div[2]/section/div/div[1]/div/form/div/div[1]/div/div/div/input','X%d'%random.randint(100,999))
        base.send_keys('输入名称', '(//input[@class="el-input__inner"])[4]', '运输')
        # base.send_keys('输入名称',"//label[contains(text(),'名称')]/following-sibling::div//input",'运输')
        base.click('点击查询', "//span[contains(text(),'查询')]")
        base.click('点击清空', "//span[contains(text(),'清空查询')]")
        base.click('点击查询', "//span[contains(text(),'查询')]")
        #  点击翻页按钮
        # base.click('点击翻页','//*[@id="app"]/div/div[2]/section/div/div[3]/div/button[2]/i')

        #  点击新增   '点击新增',"//span[contains(text(),'新增')]"
        base.click('点击新增', "//span[contains(text(),'新增')]")
        #  输入代码  "//div[@aria-label='新增']//label[contains(text(),'代码')]/following-sibling::div//input"
        base.send_keys(
            '输入代码',
            "//div[@aria-label='新增']//label[contains(text(),'代码')]/following-sibling::div//input",
            'X%d' % random.randint(100, 999))
        base.send_keys(
            '输入名称',
            "//div[@aria-label='新增']//label[contains(text(),'名称')]/following-sibling::div//input",
            '面包车运输%d' % random.randint(100, 999))
        #  点击失效日期框   "//div[@aria-label='新增']//label[contains(text(),'失效日期')]/following-sibling::div//input"
        base.click(
            '点击失效日期框',
            "//div[@aria-label='新增']//label[contains(text(),'失效日期')]/following-sibling::div//input"
        )
        # 点击日期    "//th[text()='日']/parent::*/following-sibling::tr//td[@class='available']//span[contains(text(),'28')]"
        base.click(
            '点击日期',
            "//th[text()='日']/parent::*/following-sibling::tr//td[@class='available']//span[contains(text(),'11')]"
        )
        # base.click('点击日期','/html/body/div[3]/div[1]/div/div[2]/table[1]/tbody/tr[4]/td[4]/div/span')
        base.click('点击确定', "//span[contains(text(),'确 定')]")
        # base.click('点击编辑',"(//span[contains(text(),'ASDFASFD')])[1]/parent::*/parent::*/following-sibling::td//span[contains(text(),'编辑')]")
        base.click('点击编辑第四个', "(//span[contains(text(),'编辑')])[4]")
        base.send_keys(
            '输入代码',
            "//div[@aria-label='编辑']//label[contains(text(),'代码')]/following-sibling::div//input",
            'X%d' % random.randint(100, 999))
        # base.send_keys('输入代码','(//input[@class="el-input__inner"])[7]','X330')
        base.send_keys(
            '输入名称',
            "//div[@aria-label='编辑']//label[contains(text(),'名称')]/following-sibling::div//input",
            '集装箱运输%d' % random.randint(100, 999))
        # base.send_keys('输入名称','(//input[@class="el-input__inner"])[8]','半挂车运输4')
        #  点击失效日期
        base.click(
            '点击失效日期',
            "//div[@aria-label='编辑']//label[contains(text(),'失效日期')]/following-sibling::div//input"
        )
        base.click(
            '点击日期',
            "//th[text()='日']/parent::*/following-sibling::tr//td[@class='available']//span[contains(text(),'23')]"
        )
        # base.click('选择日期','/html/body/div[4]/div[1]/div/div[2]/table[1]/tbody/tr[3]/td[7]/div/span')
        # base.click('点击日期','(//span[contains(text(),"15")])[3]')
        base.click('点击确定', "//span[contains(text(),'确 定')]")
        ######################################################################################################################
        # 切换点击运输方式
        base.click('点击运输方式', "(//span[contains(text(),'运输方式')])[1]")
        base.send_keys(
            '输入代码',
            "//label[contains(text(),'代码')]/following-sibling::div//input",
            'X102')
        # base.send_keys('输入代码','(//input[@class="el-input__inner"])[1]','X102')
        base.send_keys(
            '输入名称',
            "//label[contains(text(),'名称')]/following-sibling::div//input",
            '站到站')
        # base.send_keys('输入名称','(//input[@class="el-input__inner"])[2]','站到站')
        base.click('点击查询', "//span[contains(text(),'查询')]")
        base.click('点击新增', "(//span[contains(text(),'新增')])[1]")
        #  输入代码  "//div[@aria-label='新增']//label[contains(text(),'代码')]/following-sibling::div//input"
        base.send_keys(
            '输入代码',
            "//div[@aria-label='新增']//label[contains(text(),'代码')]/following-sibling::div//input",
            'X%d' % random.randint(100, 999))
        #  输入名称  '输入名称','(//div[@class="el-input el-input--medium"])[2]','面包车运输'
        base.send_keys(
            '输入名称',
            "//div[@aria-label='新增']//label[contains(text(),'名称')]/following-sibling::div//input",
            '门到站%d' % random.randint(100, 999))
        base.click('点击复选框', '//span[@class="el-checkbox__input"]')
        #  点击失效日期    '点击失效日期','(//span[contains(text(),30)])[2]'
        # base.click('点击失效日期',"//div[@aria-label='编辑']//label[contains(text(),'失效日期')]/following-sibling::div//input")
        base.click('点击失效日期', '//*[@id="datePickered"]')
        base.click(
            '选择日期',
            "//th[text()='日']/parent::*/following-sibling::tr//td[@class='available']//span[contains(text(),'28')]"
        )
        base.click('点击确定', "//span[contains(text(),'确 定')]")
        #  输入代码  '输入代码','(//div[@class="el-input el-input--medium"])[1]','X101'
        base.send_keys(
            '输入代码',
            "//label[contains(text(),'代码')]/following-sibling::div//input",
            'X27')
        # base.send_keys('输入代码',"//label[contains(text(),'代码')]/following-sibling::div//input",'X%d'%random.randint(100,999))
        base.send_keys(
            '输入名称',
            "//label[contains(text(),'名称')]/following-sibling::div//input",
            '门到门')
        base.click('点击查询', "//span[contains(text(),'查询')]")
        base.click('点击清空', "//span[contains(text(),'清空查询')]")
        base.click('点击查询', "(//span[contains(text(),'查询')])[1]")
        base.click('点击编辑', "//span[contains(text(),'编辑')]")
        base.click('点击取消', "//span[contains(text(),'取 消')]")
        #  点击删除     '点击删除','//span[contains(text(),'删除')]'
        base.click('点击删除', "(//span[contains(text(),'删除')])[17]")
        # 点击确定      '点击确定','//span[contains(text(),'确定')]'
        base.click('点击确定', "(//span[contains(text(),'确定')])[1]")
Example #29
0
    def test_zhuce(self,driver):
        base = baseUI(driver)
        driver.get("http://10.10.10.149:8081")  # 货主承运
        base.click('注册新账号',"//span[contains(text(),'注册新账号')]")
        base.click('点击"知道了"注册须知',"//*[@id='app']/div/div[2]/div/div/button/span")
        base.send_keys('输入手机号','//input[@class="el-input__inner"]',"18201972309")
        base.click('获取验证码',"//span[contains(text(),'获取验证码')]")
        base.send_keys('输入验证码','(//input[@class="el-input__inner"])[2]',"    ")# ------------------
        base.click('勾选服务条款协议','//span[@class="el-checkbox__inner"]')
        base.click('下一步',"//span[contains(text(),'下一步')]")
        base.send_keys('上传营业执照','//i[@class="el-icon-plus avatar-uploader-icon"]',
                       "C:\\Users\\DELL\\Desktop\\认证图片\\营业执照(1)\\营业执照\\南京聚力医药.jpg")
        base.send_keys('社会统一信用代码','(//input[@class="el-input__inner"])[1]','913201067331649774')
        base.send_keys('企业名称','(//input[@class="el-input__inner"])[2]','南京聚力医药科技有限公司')
        base.click('点击下一步',"//span[contains(text(),'下一步')]")
        base.send_keys('上传身份证正面','(//i[@class="el-icon-plus avatar-uploader-icon-horizontal"])[1]',
                       "C:\\Users\DELL\\Desktop\\认证图片\\身份证(1)\\身份证\\杨文丽0.png")
        base.send_keys('上传身份证反面','(//i[@class="el-icon-plus avatar-uploader-icon-horizontal"])[2]',
                       "C:\\Users\DELL\\Desktop\\认证图片\\身份证(1)\\身份证\\杨文丽1.png")
        base.send_keys('身份证号','(//input[@class="el-input__inner"])[1]','340321199408020820')
        base.click('下一步',"//span[contains(text(),'下一步')]")
        base.send_keys('上传道路运输经营许可证','(//i[@class="el-icon-plus avatar-uploader-icon-horizontal"])[1]',
                       "C:\\Users\\DELL\\Desktop\\认证图片\\道路运输许可证\\道路运输许可证.jpg")
        base.click('跳过',"(//span[contains(text(),'跳过')])[2]")
        base.send_keys('用户名','(//input[@class="el-input__inner"])[1]','oppo1234')
        base.send_keys('姓名','(//input[@class="el-input__inner"])[2]','亮晶晶')
        base.send_keys('密码','(//input[@class="el-input__inner"])[3]','q111111')
        base.send_keys('确认密码','(//input[@class="el-input__inner"])[4]','q111111')
        base.click('点击完成',"//span[contains(text(),'完成')]")
        # 拦截页_编辑基本信息
        base.send_keys('税号','(//input[@class="el-input__inner"])[4]','91310115MA1H9HJY9F')
        base.send_keys('单位地址','(//input[@class="el-input__inner"])[5]', '上海欣雅供应链管理有限公司')
        base.send_keys('开户银行','(//input[@class="el-input__inner"])[6]', '上海银行浦东支行')
        base.send_keys('银行账号','(//input[@class="el-input__inner"])[7]', '6221882900055141205')
        base.send_keys('企业邮箱','(//input[@class="el-input__inner"])[8]', '*****@*****.**')
        base.send_keys('联系人','(//input[@class="el-input__inner"])[9]', '亮晶晶')
        base.send_keys('电话','(//input[@class="el-input__inner"])[10]', '18201972309')
        # 营业执照内容编辑
        base.send_keys('上传营业执照','(//i[@class="el-icon-plus avatar-uploader-icon"])[2]',
                       "C:\\Users\\DELL\\Desktop\\认证图片\\营业执照(1)\\营业执照\\南京聚力医药.jpg")
        base.send_keys('企业名称','(//input[@class="el-input__inner"])[11]','测试一')
        base.send_keys('社会统一信用代码','(//input[@class="el-input__inner"])[12]','91440300772741121F')
        # 上传法人身份证信息
        base.send_keys('身份证号','(//input[@class="el-input__inner"])[13]',110000199001011112)
        base.send_keys('姓名','(//input[@class="el-input__inner"])[14]','测试一')
        #  道路运输经营许可证
        base.click('许可代码下拉框','(//input[@class="el-input__inner"])[15]')
        base.click('选择省份','//span[contains(text(),"沪")]')
        base.send_keys('字','(//input[@class="el-input__inner"])[16]','上海')
        base.send_keys('号','(//input[@class="el-input__inner"])[17]','310115021765')
        base.send_keys('业户名称','(//input[@class="el-input__inner"])[18]','上海欣雅供应链管理有限公司')
        # 危险化学品经营许可证
        base.send_keys('上传危化经营许可证','(//i[@class="el-icon-plus avatar-uploader-icon"])[1]',
                       'C:\\Users\\DELL\\Desktop\\认证图片\\危化品运输\\危化1.jpg')
        base.send_keys('整数编号','(//input[@class="el-input__inner"])[19]','D31083')
        base.send_keys('单位名称','(//input[@class="el-input__inner"])[20]','测试一')
        base.click('提交','//span[contains(text(),"提交")]')
        base.click('确认提交','//span[contains(text(),"确认提交")]')
        base.click('确认','//span[contains(text(),"确认")]')
        base.click('建材','//li[contains(text(),"建材")]')
        base.click('百货','//li[contains(text(),"百货")]')
        base.click('保存','//span[contains(text(),"保存")]')

        base.click('基础信息','//span[contains(text(),"基础信息")]')
        base.click('单位信息','//span[contains(text(),"单位信息")]')
        base.send_keys('下拉单位名称','(//input[@class="el-input__inner"])[3]','测试一')
        base.click('下拉创建来源','(//input[@class="el-input__inner"])[4]')
        base.click('选择注册','//span[contains(text(),"注册")]')
        base.click('下拉企业类型','(//input[@class="el-input__inner"])[5]')
        base.click('选择货主','//span[contains(text(),"货主")]')
        base.click('下拉审核状态','(//input[@class="el-input__inner"])[6]')
        base.click('选择待审核','//span[contains(text(),"待审核")]')
        base.click('查询','//span[contains(text(),"查询")]')
        base.click('查看','//span[contains(text(),"查看")]')




        # 合同管理
        base.click('合同管理','//span[contains(text(),"合同管理")]')
        base.click('签名管理','//span[contains(text(),"签名管理")]')

        base.click('合同模板','//span[contains(text(),"合同模板")]')

        base.click('签约管理','//span[contains(text(),"签约管理")]')

        time.sleep(2)
Example #30
0
 def test_testdemo1(self, driver):
     base = baseUI(driver)
     #登录网址
     driver.get("http://192.168.60.132/#/login")
     # 输入用户名
     base.send_keys('输入用户名', '//input[@name="username"]', 'admin')
     # 输入密码
     base.send_keys('输入密码', '//input[@name="password"]', '123456')
     # 点击登录
     base.click("登录", '//span[contains(text(),"登录")]')
     time.sleep(2)
     #点击商品
     base.click("商品", '//span[contains(text(),"商品")]')
     time.sleep(2)
     # 点击添加商品
     base.click("添加商品", '//span[contains(text(),"添加商品")]')
     time.sleep(2)
     # 点击商品分类
     base.click(
         "商品分类",
         '(//label[contains(text(),"商品分类:")]/following-sibling::div//span)[4]'
     )
     time.sleep(2)
     # 点击商品分类家用电器下拉框
     base.click("家用电器", '//li[contains(text(),"家用电器")]')
     # 点击二级洗衣机下拉框
     base.click("洗衣机", '//li[contains(text(),"洗衣机")]')
     # 点击商品名称
     base.send_keys(
         "商品名称",
         '//label[contains(text(),"商品名称:")]/following-sibling::div//input',
         "长虹洗衣机")
     # 点击副标题
     base.send_keys(
         "副标题",
         '//label[contains(text(),"副标题:")]/following-sibling::div//input',
         "家用洗衣机")
     # 点击商品品牌
     base.click(
         "商品品牌",
         '//label[contains(text(),"商品品牌:")]/following-sibling::div/div')
     # 点击格力
     base.click("格力", '//span[contains(text(),"格力")]')
     # 商品介绍
     base.send_keys(
         "商品介绍",
         '//label[contains(text(),"商品介绍:")]/following-sibling::div//textarea',
         "洗衣机")
     # 商品货号
     base.send_keys(
         "商品货号",
         '//label[contains(text(),"商品货号:")]/following-sibling::div//input',
         "789562")
     # 商品售价
     base.send_keys(
         "商品售价",
         '//label[contains(text(),"商品售价:")]/following-sibling::div//input',
         "789562")
     # 市场价
     base.send_keys(
         "市场价",
         '//label[contains(text(),"市场价:")]/following-sibling::div//input',
         "999999")
     # 商品库存
     base.send_keys(
         "商品库存",
         '//label[contains(text(),"商品库存:")]/following-sibling::div//input',
         "100000")
     # 下拉滚动条
     base.scroll_screen("下拉滚动条")
     # 计量单位
     base.send_keys(
         "计量单位",
         '//label[contains(text(),"计量单位:")]/following-sibling::div//input',
         "***")
     # 商品重量
     base.send_keys(
         "商品重量",
         '//label[contains(text(),"商品重量:")]/following-sibling::div//input',
         "99999")
     # 排序
     base.send_keys(
         "排序",
         '//label[contains(text(),"排序")]/following-sibling::div//input',
         "2")
     # 点击下一步
     base.click("下一步", '//span[contains(text(),"下一步,填写商品促销")]')
     # 赠送积分
     base.send_keys(
         "赠送积分",
         '//label[contains(text(),"赠送积分:")]/following-sibling::div//input',
         '100')
     # 赠送成长值
     base.send_keys(
         "赠送成长值",
         '//label[contains(text(),"赠送成长值:")]/following-sibling::div//input',
         '50')
     # 积分购买限制
     base.send_keys(
         "积分购买限制",
         '//label[contains(text(),"积分购买限制:")]/following-sibling::div//input',
         '200')
     # 预告商品
     base.click(
         "预告商品",
         '//label[contains(text(),"预告商品:")]/following-sibling::div//span')
     # 商品上架
     base.click(
         "商品上架",
         '//label[contains(text(),"商品上架:")]/following-sibling::div//span')
     # 商品推荐
     base.click(
         "商品推荐",
         '(//label[contains(text(),"商品推荐:")]/following-sibling::div//span)[4]'
     )
     # 服务保证
     base.click(
         "服务保证",
         '(//label[contains(text(),"服务保证:")]/following-sibling::div//span)[2]'
     )
     base.click(
         "服务保证",
         '(//label[contains(text(),"服务保证:")]/following-sibling::div//span)[5]'
     )
     base.click(
         "服务保证",
         '(//label[contains(text(),"服务保证:")]/following-sibling::div//span)[8]'
     )
     # 详细页标题
     base.send_keys(
         "详细页标题",
         '//label[contains(text(),"详细页标题:")]/following-sibling::div//input',
         'bbbbb')
     # 详细页描述
     base.send_keys(
         "详细页描述",
         '//label[contains(text(),"详细页描述:")]/following-sibling::div//input',
         '101010101')
     # 商品关键字
     base.send_keys(
         "商品关键字",
         '//label[contains(text(),"商品关键字:")]/following-sibling::div//input',
         'bbbbb')
     # 商品备注
     base.send_keys(
         "商品备注",
         '//label[contains(text(),"商品备注:")]/following-sibling::div//textarea',
         '10101010')
     # 选择优惠方式
     base.click(
         "选择优惠方式",
         '(//label[contains(text(),"选择优惠方式:")]/following-sibling::div//span)[2]'
     )
     # 特惠促销
     #     开始时间
     base.send_keys("开始时间", '//div[contains(text(),"开始时间:")]/div/input',
                    '2019-04-02 16:25:01')
     # 结束时间
     base.send_keys("结束时间", '//div[contains(text(),"结束时间:")]/div/input',
                    '2019-04-10 16:32:01')
     # 促销价格
     base.send_keys("促销价格", '//div[contains(text(),"促销价格:")]/div/input',
                    '9999')
     # 下一步,填写商品属性
     base.click("下一步", '//span[contains(text(),"下一步,填写商品属性")]')
     # 下一步,选择商品关联
     base.click("下一步", '//span[contains(text(),"下一步,选择商品关联")]')
     # 完成,提交商品
     base.click("完成", '//span[contains(text(),"完成,提交商品")]')