zoukankan      html  css  js  c++  java
  • python简单实现自动化

    我们先看大概的界面图片:

      登陆界面:

      注册界面:

      登陆后的界面:

      添加事物后的界面:

      接下来我们详细的分析一下python的自动化代码,有不对的地方希望大家指出

      

      register:注册模块(第一个模块字符比较大)

    # -*-coding:UTF-8 -*-
    from selenium import webdriver
      #这里需要引入selenium库,它是能够帮助我们识别操控浏览器的库
    import os
      #OS是我们操作dos系统时需要引入的库 os.system(
    "taskkill /f /im chromedriver.exe")
      #杀死这个chromedriver进程,因为每次启动都会打开,所以需要kill,这里用的chrome浏览器,打开方式时chromedriver.exe。需要放在代码同一目录下,不明白的可以搜索
    driver
    = webdriver.Chrome()

      '''webdriver的意思:
      Controls the ChromeDriver and allows you to drive the browser.
      You will need to download the ChromeDriver executable from
      http://chromedriver.storage.googleapis.com/index.html
      这里的意思是:webdriver的意思是控制ChromeDriver和驱动浏览器,需要下载chromediriver驱动,需要注意对应版本。
      driver是一个类,可以理解我们得到了一个浏览器窗口
      '''
      
      #下面都是调用对象,对应的方法(不知什么是类和对象,可以去看看慕课网的廖雪峰老师的课) driver.get(
    "http://172.27.35.4:8080/mt")
      #进入对应的网址,这里是我自己搭建的一个小项目 driver.maximize_window()
      #窗口最大化 driver.find_element_by_link_text(
    "接口测试课程").click()   #找到网页中的链接
      #点击 driver.find_element_by_link_text(
    "点击..").click() driver.find_element_by_id("firstName").send_keys("jie")
      #
    find_element_by_id()找到网页中的id
      #send_keys()传值
    
    driver.find_element_by_id("lastName").send_keys("feng")
    driver.find_element_by_id("userName").send_keys("fengjie")
    driver.find_element_by_id("email").send_keys("fengjie@163.com")
    driver.find_element_by_id("password").send_keys("111")
    driver.find_element_by_xpath("//button[@type='submit']").click()
      #通过xpath查找元素,如果不了解,可以先去学习html基础,推荐菜鸟教程。

    login:登陆模块

    # -*-coding:UTF-8 -*-
    
    from selenium import webdriver
    from pymysql import connect
      #这里需要引入python调用数据的库
    import os os.system("taskkill /f /im chromedriver.exe") driver = webdriver.Chrome() driver.get("http://172.27.35.4:8080/mt") driver.maximize_window() driver.find_element_by_link_text("接口测试课程").click() conn = connect(host='172.27.35.4', user='root',database='scott', port=3306)
      #这里是连接数据库,输入对应的数据。不知道有哪些参数,可以看源码,我看了一下参数太多了,这里就不列出来了 cursor
    =
    conn.cursor()
      
    """Create a new cursor to execute queries with
      cursor是方法
    """这是cursor的注释,我们可以理解为实例化一个游标来执行查询
    """

    query
    = "select * from userinfo where user_name='fengjie'"
      #定义一个变量,其实就是我们要进行查询的语句,不记得了推荐菜鸟教程学习哈。
    cursor.execute(query)
      #execute()是cursor的方法,执行sql语句,我们通过query传参,传入sql语句,得到的结果我们放在了游标里面 result
    = cursor.fetchall()   #将游标的结果一行一行的输出到result中,result变成了一个二维列表 driver.find_element_by_id("j_username").send_keys(result[0][5])
      #选择数据中的姓名字段,输入数据 driver.find_element_by_id(
    "j_password").send_keys(result[0][4])
      #选择数据中的密码字段,输入密码 driver.find_element_by_xpath(
    "//button[@type='submit']").click()
      #点击提交

    add:添加事务模块

    # -*-coding:UTF-8 -*-
    
    from pymysql import connect
    from selenium import webdriver
    from selenium.webdriver.support.select import Select
    import os
    
    os.system("taskkill /f /im chromedriver.exe")
    driver = webdriver.Chrome()
    driver.get("http://192.168.5.3/mt")
    driver.maximize_window()
    driver.find_element_by_link_text("接口测试课程").click()
    
    conn = connect(host='192.168.5.3', user='root',
                     database='scott', port=3306)
    cursor = conn.cursor()
    
    query = "select * from userinfo  where user_name='fengjie'"
    cursor.execute(query)
    result = cursor.fetchall()
    
    driver.find_element_by_id("j_username").send_keys(result[0][5])
    driver.find_element_by_id("j_password").send_keys(result[0][4])
    driver.find_element_by_xpath("//button[@type='submit']").click()
    
    username = result[0][5]
    
    query = "delete from todo where user_name=(select id from userinfo where user_name='%s')" % username
    #删除todo表中的数据,里面是添加的事务,因为我们要验证添加是否成功,所以要先删除原有的事务
    cursor.execute(query)
    #执行 conn.commit() #提交 driver.find_element_by_id("inputName").send_keys("caichang_test") Select(driver.find_element_by_id('priority')).select_by_value('MEDIUM')
    #选择网页中的下拉框 driver.find_element_by_xpath("//input[@is-open='opened']").send_keys("20-June-2019")
    #选择输入日期,xpath方法 driver.find_element_by_xpath("//button[@ng-click='isOpen = false']").click()
    #点击确定 driver.find_element_by_xpath("//button[@type='submit']").click()
    #点击提交 query2 = "select count(*) from userinfo,todo where userinfo.id=todo.user_name and userinfo.user_name='%s'" % username cursor.execute(query2) result2 = cursor.fetchmany()
    #查询插入的数据 # 在实际工作中,要写入excel或其他文件中等,还要纳入日志等 if result2[0][0] == 1: print "测试成功" else: print "测试失败" driver.quit()

      

    少壮不努力,老大徒伤悲
  • 相关阅读:
    c#和unity引擎的所有笔记
    C#笔记(十九)——委托和事件
    委托
    c#笔记(十七)——队列
    js正则表达式
    mysql分页
    springMVC
    hibernate与spring整合实现transaction
    spring aop
    about hibernate lazy load and solution
  • 原文地址:https://www.cnblogs.com/zsjlovewm/p/10635925.html
Copyright © 2011-2022 走看看