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()




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM