zoukankan      html  css  js  c++  java
  • Python+Selenium+Mysql(动态获取数据,数据库交互)

    一、创建数据库连接

      '''
      #!coding:utf-8
      import pymysql
      '''
    

    Python3之后不再支持MySQLdb的方式进行访问mysql数据库;
    可以采用pymysql的方式

    连接方式:
    1、导包
    import pymysql
    2、打开数据库连接
    conn = pymysql.connect(host='10...*',user='root',password='123456',db='self_dev',charset='utf8',cursorclass=pymysql.cursors.DictCursor)
    备注:其中cursorclass=pymysql.cursors.DictCursor 可有可无,配置的是每个字段的展示方式,按照字典的形式进行展示(方便通过列名进行访问),默认元组形式。
    3、使用cursor()方法获取操作游标
    cur = connection.cursor()
    4、SQL 查询语句
    sql = "SELECT * FROM table t where t.name='政协'"
    5、执行SQL语句
    cur.execute(sql)
    6、获取所有记录列表
    rows = cur.fetchall()
    7、输出

    8、关闭数据库连接
        connection.close()
    

    '''
    class dbClection:
    connection = pymysql.connect(host='10...*',
    user='root',
    password='123456',
    db='self_dev',
    charset='utf8',
    cursorclass=pymysql.cursors.DictCursor)
    def getOrgid(self):
    cur = self.connection.cursor()

        sql = "SELECT t.id FROM org t where t.name='自动化添加(行政区域)' and t.status='1'"
        try:
            cur.execute(sql)
            results = cur.fetchall()
    
            for row in results:
                org_id = row['id']
                return org_id
                #print(org_id)
        except:
            print('Error:unable to fetch data')
    
        self.connection.close()
    

    '''
    if name == 'main':
    db = dbClection()
    res = db.getOrgid()
    print(res)
    '''

    二、引用上述创建的dbClection下的getOrgid()方法

    !coding:utf-8

    from selenium import webdriver
    from time import sleep
    import unittest
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.support.ui import Select
    from mySql import dbClection----------主体省略----------------

    def test_add_fenwei(self):
    u'''登录'''
    username = 'org-admin'
    password = '123456'
    self.login(username,password)
    sleep(2)
    #进入组织管理界面
    self.dr.get(self.org_url)
    sleep(2)
    db = dbClection()
    xzjd_org = db.getOrgid()
    # print(xzjd_org)
    self.by_xpath('//*[@id="%s"]/i'%xzjd_org).click()
    sleep(2)
    self.dr.find_element_by_partial_link_text('自动化添加(地域)').click()
    sleep(2)
    self.by_id('addDept').click()
    sleep(3)
    self.by_id('orgName_add').send_keys('自动化添加(分类)')
    sleep(2)
    Select(self.by_id("govDeptType_add")).select_by_visible_text("分类")
    sleep(2)
    self.by_id('saveDeptAdd').click()

      备注:变量在使用在页面定位中时,需要进行%格式化,否则无法传入。      例如:  db = dbClection()
    xzjd_org = db.getOrgid()
    # print(xzjd_org)
    self.by_xpath('//*[@id="%s"]/i'%xzjd_org).click()

    今天太阳也东升,而后西沉,早晨盛开的花儿也将凋谢;今天的太阳也西沉,而后东升,阳光照射之处遍地花开,但却已非昨日之花。
  • 相关阅读:
    zookeeper
    消息中间件介绍
    Java实现动态代理的两种方式
    深入理解Java内存模型
    消息中间件(一)MQ详解及四大MQ比较
    synchronized关键字详解及分析锁升级过程
    JDK1.6的Synchronized底层优化(偏向锁、轻量级锁)
    分布式通信-tcp/ip socket
    技术点
    大众点评 cat
  • 原文地址:https://www.cnblogs.com/TD1900/p/13853822.html
Copyright © 2011-2022 走看看