我的第一个自动化脚本,欢迎大神指教一二;实现登陆、新增功能,并生成测试报告

import unittest
import time
#import HTMLTestRunner
from selenium import webdriver
from time import sleep
import HTMLTestReport
driver = webdriver.Chrome()
driver.maximize_window()
# 登陆
url="xxxxxxxxx"
driver.get('url')
sleep(2)
driver.find_element_by_id("J_Username").send_keys("xxxxxx")
driver.find_element_by_id("J_Password").send_keys("xxxxxx")
sleep(5)
driver.find_element_by_id("submitBtn").click()
sleep(2)
# 基础设施模块
driver.find_element_by_class_name("background-FC7038").click()
driver.close()
#  窗口切换
windows = driver.window_handles
driver.switch_to.window(windows[-1])
sleep(6)
# 菜单选择
driver.find_element_by_xpath("//*[@id='sidebar-scroll']/div/div[2]/ul/li[4]/a/span").click()
driver.find_element_by_xpath("//*[@id='sidebar-scroll']/div/div[2]/ul/li[4]/ul/li[7]/a/span").click()
sleep(5)
# 查询
driver.switch_to.frame("contentFrame")  # 切换frame
driver.find_element_by_xpath("//*[@id='root']/div/div[1]/div/div/div[1]/div/div[2]/div/div[2]/div/div[2]/input").send_keys("测试化粪池01")  # 查询信息输入
driver.find_element_by_xpath("//*[@id='root']/div/div[1]/div/div/div[2]/div/div[1]/div/bt/button").click()
#清空
driver.find_element_by_xpath("//*[@id='root']/div/div[1]/div/div/div[2]/div/div[2]/div/bt/button").click()
# 新增
driver.find_element_by_xpath("//*[@id='root']/div/div[2]/div/button[1]").click() #新增按钮
driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/div[1]/div[2]/div/div[1]/div[2]/input").send_keys("test123456")  # 编码
driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/div[1]/div[2]/div/div[2]/div[2]/span/input").send_keys("test123456") # 名称
    # 日期输入框,选择日期
driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/div[1]/div[2]/div/div[3]/div[2]/span/div/input").click()
driver.find_element_by_xpath("/html/body/div[3]/div/div/div/div/div[2]/div[2]/table/tbody/tr[2]/td[2]/div").click()
sleep(2)
    # 行政区划选择
driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/div[1]/div[2]/div/div[5]/div[2]/div/span/input").click()  # 行政区划下拉框
driver.find_element_by_class_name("ant-popover-inner-content").click()  # 弹出框选择
driver.find_element_by_xpath('//span[@class="node_name"]').click()      # 选择海门市
sleep(3)
    # 管理单位
driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/div[1]/div[2]/div/div[7]/div[2]/span/span/span[1]/span").click()  # 请选择管理单位
driver.find_element_by_xpath('/html/body/div[5]/div/div/div/span/span/input')
driver.find_element_by_xpath("/html/body/div[5]/div/div/div/ul/li/ul/li/span[2]/span").click()
# # # #选择为主任室 ?
# # # #driver.find_element_by_xpath("/html/body/div[4]/div/div/div/span/span/input").send_keys("主任室")
# # # #driver.find_element_by_xpath("/html/body/div[6]/div/div/div/ul/li/ul/li/ul/li[10]/span[2]/span").click() # 主任室
# # # # 先定位到下拉菜单
# # # #drop_down = driver.find_element_by_css_selector("div#select2_container > ul")
# # # # 再对下拉菜单中的选项进行选择
# # # #drop_down.find_element_by_id("li2_input_2").click()
#     # 责任单位
# driver.find_element_by_xpath('/html/body/div[2]/div/div[2]/div/div[1]/div[2]/div/div[8]/div[2]/span/span/span[1]/span').click()
# driver.find_element_by_xpath('/html/body/div[9]/div/div/div/ul/li/ul/li/ul/li[1]/span[2]/span').click()

    # 类型选择
driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/div[1]/div[2]/div/div[9]/div[2]/div/div/div").click()
sleep(2)
driver.find_element_by_xpath("//li[text()='180']").click()
sleep(2)
    # 等级选择
driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/div[1]/div[2]/div/div[10]/div[2]/div/div/div").click()
sleep(3)
driver.find_element_by_xpath("//li[text()='无偿']").click()
sleep(2)
#     #责任人
# driver.find_element_by_xpath('//span[text()="请选择责任人"]').click()
# driver.find_element_by_xpath('//span[text()="张勇华"]').click
    # 排序号
driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/div[1]/div[2]/div/div[11]/div[2]/span/input").send_keys("1")
    # 保存
driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/div[1]/div[3]/button[2]").click()
sleep(2)
#清空
driver.find_element_by_xpath('//span[test()="清空"]').click()
class Haimentest(unittest.TestCase):
    def setUp(self):#头
        pass
    def tearDown(self): #尾
        pass
    def test001(self):
        result = driver.find_element_by_xpath("//li[text()='合计 1724 条']").text
        b = "合计 1722 条"
        print(result)
        self.assertEqual(result, b)
    def test002(self):
        result = driver.find_element_by_xpath("//li[text()='合计 1724 条']").text
        b = "合计 1724 条"
        print(result)
        self.assertEqual(result, b)
# 测试报告输出
if __name__=='__main__':
        current_time=time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))   #打印时间
        suite=unittest.TestSuite()                                                    #定义一个容器
        suite.addTest(Haimentest('test001'))
        suite.addTest(Haimentest('test002'))                                           #将测试用例加入到测试容器中
        repot_path='./result/'+current_time+'.html'                                   #生成测试报告的路径
        print('测试报告路径',repot_path)                                               #照抄
        fp=open(repot_path,'wb')                                                        #照抄
        runner=HTMLTestReport.HTMLTestRunner(stream=fp,title='自动化测试报告',description='自动化测试演示报告',tester='自动化测试人员')   #中文版测试报告
        # runner=HTMLTestRunner.HTMLTestRunner(stream=fp, title='自动化测试报告', description='自动化测试演示报告')   #英文版测试报告
        runner.run(suite)
        fp.close()

你可能感兴趣的:(我的第一个自动化脚本,欢迎大神指教一二;实现登陆、新增功能,并生成测试报告)