1.使用BeautifulReport报告时,截图的图片名称自动获取。
# 截图 图片名称自动获取为"类名+方法名" self.save_img(self.__class__.__name__+"_"+inspect.currentframe().f_code.co_name)
2.详情页的测试验证
transactionType_key=[A,B,C]
# 循环 "取引種別" 下拉内容,再进行检索操作,再断言 for key in transactionType_key: print('\n') print("取引種別 = ", key)# 展示当前执行信息 # 检索操作 business(driver).search( transactionPeriodBeginTime=begintime, transactionPeriodEndTime=endtime, transactionType=key, storeName='NSSテスト店舗') time.sleep(0.5) # 点击 [検索する] driver.find_element(By.XPATH, '//span[text()="検索する"]').click() time.sleep(1) # 显示等待,查询结束,字段“日時”出现 tool(driver).webDriverWait( By.XPATH, '') data = tool(driver).tableBody(x=1) print('预期数据:', data) # 步骤2: # 点击 [詳細] 按钮 listXpath = '//div[@class="el-table__fixed-body-wrapper"]//span[contains(text(),"詳細")]' driver.find_element(By.XPATH, listXpath).click() time.sleep(1) self.save_img(self.__class__.__name__+"_"+inspect.currentframe().f_code.co_name) # 循环查询结果列表的表头字段 for n in data: timeValue = data[n] # 记录时间,后续会改写key,所以需要提前记录值,用于断言。 if n not in ["", "進呈区分"]:# 查询结果列表中,特殊数据排出(详情页没这字段) if n == "店舗":# 查询列表字段名称 和 详情页名称有区别,改写匹配 n = "店舗名" try:# 断言操作,失败则记录,不会因为1个字段失败,后续无法执行。 self.assertIn( timeValue, tool(driver).returnValue(title='取引情報', field=n) ) print(f"{n} 字段值验证,测试通过!") except AssertionError as e: fail_msg.append(f"{n} 字段值验证失败!") fail_msg.append(str(e)) # 步骤3: # 关闭 详情 页 tool(driver).webDriverWait( By.XPATH, '' ).click() # 如果有失败的信息,最后统一抛出异常 if fail_msg: raise AssertionError('\n'.join(fail_msg))