zoukankan      html  css  js  c++  java
  • Python3 生成并且按照顺序保存图片

      1 # -*- coding:utf-8 -*-
      2 from selenium import webdriver
      3 #导入webself.driver
      4 import requests
      5 # 导入request模块
      6 from selenium.webdriver.support.ui import Select
      7 #用于定位下拉框
      8 import time
      9 #导入时间控件
     10 import unittest
     11 #导入unittest框架
     12 from HTMLTestRunner import HTMLTestRunner
     13 #d导入HTMLTestRunner模块,用于生成测试报告
     14 from selenium.webdriver.common.keys import Keys
     15 # 导入键盘机制
     16 import qrcode
     17 import datetime
     18 import os
     19 
     20 
     21 
     22 
     23 class Deposit_Test(unittest.TestCase):
     24     num = 100
     25     @classmethod
     26     def setUpClass(self):
     27         chrome_options = webdriver.ChromeOptions()
     28         chrome_options.add_experimental_option('useAutomationExtension', False)
     29         chrome_options.add_experimental_option("excludeSwitches", ['enable-automation'])
     30         self.driver = webdriver.Chrome(executable_path="C:Downloadchromedriver.exe", options=chrome_options)
     31         _url = "http://bdms.XXX.com/"
     32         self.driver.get(_url)
     33         time.sleep(2)
     34         name = ("92510521MA649F3333")
     35         password = name[-8:]
     36         print("密码:",password)
     37         self.driver.find_element_by_id("loginName").send_keys(name)
     38         self.driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div[2]/input").send_keys(password)
     39         self.driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div[3]/input").click()
     40         time.sleep(2)
     41         self.driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/input").click()
     42         self.driver.maximize_window()
     43         self.driver.fullscreen_window()
     44         browser_size = self.driver.get_window_size()
     45         browser_name = self.driver.name
     46         title = self.driver.title
     47         print(title)
     48         time.sleep(2)
     49         try:
     50             self.driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div[2]/div[3]/span[1]").click()
     51             print("关闭未签约弹窗")
     52         except:
     53             pass
     54         # 未签约用户,关闭弹窗
     55         print("浏览器名称:" + browser_name)
     56         print("浏览器版本 :", self.driver.capabilities["browserVersion"])
     57         print("浏览器尺寸:", browser_size)
     58     @classmethod
     59     def tearDownClass(self):
     60         self.driver.quit()
     61         print("执行完成关闭浏览器")
     62 
     63     def test_001(self):
     64         '''销售→退押金整体流程'''
     65         self.driver.find_element_by_xpath("/html/body/div[1]/div/div[1]/div[2]/div[1]/div").click()
     66         # 售卖农药→退押金
     67         count = 10
     68         salelist = []
     69         # 打开*个页面,售卖个数= count*10
     70         for i in range(count):
     71             result = requests.get('http://10.2.178.11:8099/test?pagenum=' + str(i))
     72             # 遍历*个页面
     73             resultJson = result.json()
     74             # 把数据导出为json字符串
     75             print("解析结果", resultJson['data'])
     76             # 打印结果
     77             for nyObj in resultJson['data']:
     78                 # 遍历导出的json数据
     79                 print("农药对象为:", nyObj)
     80                 print("编号:", nyObj[0])
     81                 print("名称:", nyObj[1])
     82                 print("二维码:", nyObj[2])
     83                 salelist.append(nyObj[2])
     84                 # 每次遍历后提取nyobj[2]的数据,并且放入salelist数组内
     85                 print("已销售农药二维码:", salelist)
     86                 # 打印list
     87                 self.driver.find_element_by_id("myInputCode").send_keys( nyObj[2])
     88                 # 把农药二维码/追溯码当做参数传入输入框内
     89                 # time.sleep(1)
     90                 self.driver.find_element_by_id("myInputCode").send_keys(Keys.ENTER)
     91                 time.sleep(1)
     92             # 输入农药二维码/追溯码后,点击键盘回车键
     93         time.sleep(1)
     94         self.driver.find_element_by_class_name("btnDefault").click()
     95         # 点击销售按钮
     96         time.sleep(2)
     97         self.driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div[3]/div[1]/div[2]/div/div[2]/span/button[1]").click()
     98         time.sleep(3)
     99         print("销售农药个数:",count*10)
    100         # 展示销售个数
    101         print(salelist)
    102         try:
    103             self.driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div[3]/div[1]/div[2]/div/div[2]/span/button[1]").click()
    104         except:
    105             pass
    106         # 打印list:把nyobj[2]的数据放入list数组中
    107         time.sleep(1)
    108         self.driver.find_element_by_xpath("/html/body/div[1]/div/div[1]/div[2]/div[2]").click()
    109         time.sleep(6)
    110         # 点击退押金按钮
    111         returned1 = self.driver.find_element_by_xpath("/html/body/div[1]/div/div[3]/div[2]/span").text[0:-4]
    112         returned1 = int(returned1)
    113         print("退押金前退回押金总额:",returned1)
    114         time.sleep(60)
    115         # 等待60s:销售60s后方可退押金
    116         for returnlist in salelist:
    117         # 遍历
    118             print("已销售二维码:",returnlist)
    119         # 打印
    120             img = qrcode.make(returnlist)
    121             # t = time.strftime('%Y-%m-%d %H_%M_%S', time.localtime())
    122             Deposit_Test.num = Deposit_Test.num + 1
    123             img.save(str(Deposit_Test.num)+".jpg")
    124             self.driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div[2]/div[2]/div[1]/input").send_keys(returnlist)
    125         # 把已销售二维码输入输入框
    126             self.driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div[2]/div[2]/div[1]/input").send_keys(Keys.ENTER)
    127             time.sleep(1)
    128         self.driver.find_element_by_class_name("btnDefault").click()
    129         # 点击退押金
    130         time.sleep(1)
    131         returned2 = self.driver.find_element_by_xpath("/html/body/div[1]/div/div[3]/div[2]/span").text[0:-4]
    132         returned2 = int(returned2)
    133         print("退押金后退回押金总额",returned2)
    134         returned3 = returned1 + int(count*10)
    135         print(returned3)
    136         if int(returned2) == returned3:
    137             print("退还押金成功,已销售农药退押金成功个数:",count*10)
    138         else:
    139             print("退还押金失败")
    140 
    141 
    142 
    143 
    144 if __name__ == '__main__':
    145     unittest.main()
    146 
    147     # testunit = unittest.TestSuite()
    148     # # 制定一个容器,生成 test_001的测试报告
    149     # testunit.addTest(Deposit_Test("test_001"))
    150     # filename = "C:\Users\jiaow\PycharmProjects\nongzi\Test_reports\report_Tuiyajin.html"
    151     # fp = open(filename, "wb")
    152     # runner = HTMLTestRunner.HTMLTestRunner(
    153     #     stream=fp,
    154     #     title="农药押金收退终端测试报告",
    155     #     description="用例执行情况:" )
    156     #
    157     # runner.run(testunit)
    158     # fp.close()
    159 
    160 
    161 
    162 
    163  
  • 相关阅读:
    Jvm年轻代复制到Survivor To区时,对象存放不下会发生什么?
    Jvm内存布局和Java对象内存布局
    ArrayList的removeIf和iterator.remove性能比较
    闲着没事做,用js做了一个冒泡排序的动画
    对象与this
    idea 简记
    线程按序交替
    大数阶乘
    序列化 与 反序列化
    人月神话
  • 原文地址:https://www.cnblogs.com/jiaown123/p/14326082.html
Copyright © 2011-2022 走看看