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



转载于:https://www.cnblogs.com/licl11092/p/7090658.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值