一、创建数据库连接

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


Python+Selenium+Mysql(动态获取数据,数据库交互)的更多相关文章

  1. python使用mysql connection获取数据感知不到数据变化问题

    在做数据同步校验的时候,需要从mysql fetch数据和hbase的数据进行对比,发现即使mysql数据变化了,类似下面的代码返回的值还是之前的数据.抽取的代码大概如下: import MySQL ...

  2. [Python爬虫] 之一 : Selenium+Phantomjs动态获取网站数据信息

    本人刚才开始学习爬虫,从网上查询资料,写了一个利用Selenium+Phantomjs动态获取网站数据信息的例子,当然首先要安装Selenium+Phantomjs,具体的看 http://www.c ...

  3. highcharts动态获取数据生成图表问题

    动态获取数据说白点就是从后台传值到前台,前台把这些值赋值给x轴与y轴(这里指的是你X轴与Y轴都是变化的数据,如果你的X轴是固定的,像时间等等的那就另说).  柱状图的动态传值: //获取后台数据 va ...

  4. Python Socket请求网站获取数据

     Python Socket请求网站获取数据 ---阻塞 I/O     ->收快递,快递如果不到,就干不了其他的活 ---非阻塞I/0 ->收快递,不断的去问,有没有送到,有没有送到,. ...

  5. echarts通过ajax动态获取数据的方法

    echarts表格的数据一般都需要动态获取,所以总结了一下通过ajax动态获取数据的操作: 插入的方法应该不止一种,我也是接触不久,所以刚学会了一种插入方法: 灵感和经验来自:https://www. ...

  6. [Python爬虫] Selenium+Phantomjs动态获取CSDN下载资源信息和评论

    前面几篇文章介绍了Selenium.PhantomJS的基础知识及安装过程,这篇文章是一篇应用.通过Selenium调用Phantomjs获取CSDN下载资源的信息,最重要的是动态获取资源的评论,它是 ...

  7. python+selenium实现动态爬取及selenuim的常用操作

    应用实例可以参考博客中的12306自动抢票应用 https://www.cnblogs.com/mumengyun/p/10001109.html 动态网页数据抓取 什么是AJAX: AJAX(Asy ...

  8. Python爬虫之-动态网页数据抓取

    什么是AJAX: AJAX(Asynchronouse JavaScript And XML)异步JavaScript和XML.过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新.这意 ...

  9. MySQL随机获取数据的方法,支持大数据量

    最近做项目,需要做一个从mysql数据库中随机取几条数据出来. 总所周知,order by rand 会死人的..因为本人对大数据量方面的只是了解的很少,无解,去找百度老师..搜索结果千篇一律.特发到 ...

  10. ECharts 从后台动态获取数据 (asp.net)

    (一) 使用工具 visual studio 2017:Web开发:asp.net (代码中的js引用路径以及ajax方法调用的url,记得修改哦) (二) 准备工作(此处写给和我一样小白) 1.动态 ...

随机推荐

  1. 【Oracle】10g查看trace生成文件位置及文件名称

    select  u_dump.value || '/' ||  db_name.value || '_ora_' ||  v$process.spid ||  nvl2(v$process.trace ...

  2. kubernets之服务重定向

    一  服务的强大功能之处的其他表现 前面介绍的所有有关服务的说明,都是将集群内部的pod应用暴露出来提供外部客户端或者内部的客户端进行访问,但是服务的强大之处远远不止于此 服务甚至可以将集群外部的应用 ...

  3. CTFHub - Web(一)

    请求方法: 1.进入页面,提示:HTTP 请求方法, HTTP/1.1协议中共定义了八种方法(也叫动作)来以不同方式操作指定的资源. 2.当前http的请求方式是get请求,当你使用CTFHUB为请求 ...

  4. 单元测试:单元测试中的mock

    公司要求提升单元测试的质量,提高代码的分支覆盖率和行覆盖率,安排我研究单元测试,指定方案分享并在开发部普及开.整理完资料后,同步一下到博客. 单元测试中的mock的目的 mock的主要目的是让单元测试 ...

  5. 使用Logback日志

    使用Logback日志 spring boot内部使用Logback作为日志实现的框架. Logback和log4j非常相似,如果你对log4j很熟悉,那对logback很快就会得心应手. logba ...

  6. 牛逼!MySQL 8.0 中的索引可以隐藏了…

    MySQL 8.0 虽然发布很久了,但可能大家都停留在 5.7.x,甚至更老,其实 MySQL 8.0 新增了许多重磅新特性,比如栈长今天要介绍的 "隐藏索引" 或者 " ...

  7. linux编译模块,包含了头文件却还是报undifind警告

    在编写一个自己写的gadget驱动的时候遇到一个这样的问题,编译的时候报了个警告:WARNING: "usb_composite_register" [-/my_zero.ko] ...

  8. JavaWeb三大框架基础架构——CRUD的基础功能搭建

    @ 目录 介绍 注意 applicationContext.xml mybatis-config.xml web.xml 结束语 介绍 项目前端采用了bootstrap,后端是ssm三大框架 注意 这 ...

  9. Hash Join: Basic Steps

    Joins https://docs.oracle.com/database/121/TGSQL/tgsql_join.htm#TGSQL242 tidb/index_lookup_hash_join ...

  10. OPTIONS的预请求(Preflighted Request)

    OPTIONS的预请求(Preflighted Request) Ajax 请求中出现OPTIONS(Request Method: OPTIONS)_qiao-CSDN博客 https://blog ...