51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 723|回复: 1
打印 上一主题 下一主题

selenium 数据驱动+断言失败并截图

[复制链接]
  • TA的每日心情
    无聊
    3 天前
  • 签到天数: 530 天

    连续签到: 2 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2022-10-20 09:27:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1测试积点
    问题遇到的现象和发生背景

    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()启动测试

    复制代码

    运行结果及报错内容



    我想要达到的结果

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



    附件: 您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 07:50
  • 签到天数: 2818 天

    连续签到: 6 天

    [LV.Master]测试大本营

    2#
    发表于 2022-10-21 17:25:40 | 只看该作者
    看看是方法的问题吗
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-24 22:36 , Processed in 0.067571 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表