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
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()
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)
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]")
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()='下一步,填写商品属性']")
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')
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(),"取消")]')
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, "发货成功")
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)
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
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)
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()
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]")
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)
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('滚动')
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)
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)
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
def test_test_demo(self, driver): base = baseUI(driver) driver.get('https://www.baidu.com/')
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)
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()
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)
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]")
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)
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(),"完成,提交商品")]')