51Testing软件测试论坛

标题: selenium 数据驱动+断言失败并截图 [打印本页]

作者: 测试积点老人    时间: 2022-10-20 09:27
标题: selenium 数据驱动+断言失败并截图
问题遇到的现象和发生背景

selenium ddt数据驱动+断言失败则截图,无法截图

  1. # 1.selenium 引入 webdriver
  2. import os
  3. from selenium import webdriver
  4. # 2.引入ddt代码库
  5. import ddt
  6. # 3.引入unittest
  7. import unittest
  8. import time
  9. from selenium.webdriver.common.by import By
  10. # 5.引入步骤1中的数据读取方法
  11. from selenium.webdriver.support.select import Select

  12. from csv_4 import read


  13. @ddt.ddt
  14. # ddt装饰器
  15. class Pxnr(unittest.TestCase):
  16.     def setUp(self):
  17.         # 4.selenium-webdriver  打开谷歌
  18.         self.driver = webdriver.Chrome()
  19.         # 6.get方法获取页面
  20.         self.driver.get("http://172.32.254.111/ams/front/login.do")
  21.         # 7.智能等待30秒
  22.         self.driver.implicitly_wait(30)

  23.     def tearDown(self):
  24.         self.driver.quit()
  25.     stream_info = read()
  26.     # 创建一个变量来接受数据
  27.     @ddt.data(*stream_info)


  28.     def test_pxnr(self, list):
  29.         try:
  30.             driver = self.driver
  31.             driver.find_element(By.NAME, "taskId").send_keys("24")
  32.             # 登录页面
  33.             driver.find_element(By.ID, "loginName").send_keys("2022061304")
  34.             driver.find_element(By.NAME, "password").send_keys("RM0901")
  35.             driver.find_element(By.TAG_NAME, "button").click()
  36.             # 资产报废页面
  37.             driver.find_element(By.LINK_TEXT, "资产报废").click()  # 资产报废-链接
  38.             # 资产报废-新增
  39.             driver.find_element(By.XPATH, '//*[@id="fmsearch"]/div/button').click()  # 报废登记-按钮
  40.             #
  41.             aa = driver.find_element(By.NAME, "assetId")  # 资产名称
  42.             Select(aa).select_by_visible_text(list[0])
  43.             #
  44.             time.sleep(1)
  45.             driver.find_element(By.XPATH, '//*[@id="软件部"]').click()  # 申请人
  46.             time.sleep(1)
  47.             #
  48.             dd = driver.find_element(By.NAME, 'dictScrapWay')  # 报废方式
  49.             Select(dd).select_by_visible_text(list[1])  # 选择
  50.             # list[1]   报废方式-下拉列表 输入读取的数据
  51.             #
  52.             time.sleep(1)
  53.             driver.find_element(By.XPATH, '//*[@id="scrapDate"]').click()  # 报废日期-输入框-点击
  54.             time.sleep(1)
  55.             driver.find_element(By.XPATH, '//*[@id="scrapDate"]').send_keys("20220616")
  56.             driver.find_element(By.XPATH, '//*[@id="remark"]').send_keys("尝试")
  57.             #
  58.             driver.find_element(By.XPATH, '//*[@id="submitButton"]').click()  # 点击提交按钮
  59.             element = driver.switch_to.alert.text  # 弹出保存  必须强制等待,缓冲
  60.             print("1.实际结果:", element)
  61.             # 实际结果和预期结果进行断言     assertEqual断言方法进行对比
  62.             # 如果不正确要向 (下面)except获取时间
  63.             self.assertEqual(list[2], element)  # 预期 实际
  64.             time.sleep(2)
  65.             driver.switch_to.alert.accept()  # 确定
  66.             time.sleep(2)
  67.         except:
  68.             #获取时间
  69.             current_time = time.strftime("%Y%m%d%H%M%S")    #20221019163221
  70.             # #获取当前绝对路径
  71.             func_path = os.path.dirname(__file__)   #D:\charm\race
  72.             # 将路径转为字符串
  73.             base_dir = os.path.dirname(func_path)   #D:\charm
  74.             # 对路径的字符串进行替换
  75.             base_dir = base_dir.replace('\\', '/')  #D:/charm
  76.             filepath = base_dir + '/race/screenshot/img' + current_time + '.png'
  77.             print("5.",filepath)#D:/charm/race/screenshot/img20221019163221.png
  78.             jt = self.driver.get_screenshot_as_file(filepath)
  79.             print(jt)
  80.         finally:
  81.             self.driver.quit()

  82. if __name__ == '__main__':
  83.     unittest.main()
  84. # 调用unittest.main()启动测试

复制代码

运行结果及报错内容


[attach]144045[/attach]
我想要达到的结果

请教,怎么才能成功截图啊




作者: jingzizx    时间: 2022-10-21 17:25
看看是方法的问题吗




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2