#coding=utf8
'''
该模式功能是实现自动运行sql命令,命令执行成功后
保存成功截图并下载结果文件;运行出错,则保存错误截图;
开始运行保存,设置命令截图。
该模块初始化包含如下信息:
self.url:用来保存要访问的网站链接
self.driver:创建一个Chrome对象实例,并启动Chrome浏览器
self.driver.maximize_window():窗口最大化
self.driver.get(self.url):打开网站链接
self.driver.implicitly_wait(10):设置隐性等待时间10秒
'''
import time
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
#设置默认编码格式为utf8
import sys
reload(sys)
sys.setdefaultencoding("utf8")
class RunXQL(object):
def __init__(self):
self.url=""
self.driver=webdriver.Chrome()
self.driver.maximize_window()
self.driver.get(self.url)
self.driver.implicitly_wait(10)
self.run()
def openCmd(self):
#设置命令文件的路径,使用RunAll.py脚本时,是.//CmdFile//CMD
#如果直接运行该脚本要更改为:..//CmdFile//CMD
filePath=".//CmdFile//CMD"
#打开文件
cmd=file(filePath,"r+")
#读取文件
cmd=cmd.read()
#把文件转换成string类型并解码
cmds=str(cmd).decode("utf8")
#根据换行符对命令文件进行拆分
#如果不进行该项处理,在命令行结尾会莫名添加一个括号)
cmd=cmds.split("\n")
#返回命令行列表
return cmd
def SetCmdImage(self):
try:
#获取当前时间并转换为字符串
now=time.strftime("%Y%m%d%H%M%S")
#设置图片格式与路径
#如果直接运行该脚本,变成..\\SetCmdImage
#以下涉及路径的于此处理方法一样
fileName=".\\SetCmdImage"+"\\"+now+"xpl.png"
#保存屏幕截图到相应路径
self.driver.get_screenshot_as_file(fileName)
except Exception,e:
print e
def RunErrorImage(self):
try:
now=time.strftime("%Y%m%d%H%M%S")
fileName=".\\RunErrorImage"+"\\"+now+"xqlErro.png"
self.driver.get_screenshot_as_file(fileName)
except Exception,e:
print e
def SuccessImage(self):
try:
now=time.strftime("%Y%m%d%H%M%S")
fileName=".\\ExecResutlImage"+"\\"+now+"success.png"
self.driver.get_screenshot_as_file(fileName)
except Exception,e:
print e
def inputCMD(self,cmd):
try:
#获取输入命令行元素对象
cmdArea=self.driver.find_element_by_class_name("ace_text-input")
#如果元素存在
if cmdArea:
#把命令输入到文本区域中
cmdArea.send_keys(cmd)
#获取屏幕截图
self.SetCmdImage()
else:
print "The element %s not exists!" %("ace_text-input")
except Exception,e:
print e
def runCmd(self):
try:
#获取执行命令的元素对象
runEle=self.driver.find_element_by_xpath("//*[@id=\"new-tab-cont\"]/div/div[1]/ul[1]/li[1]/a")
#如果元素存在
if runEle:
#点击该元素运行命令
runEle.click()
else:
print "The element %s not exists!" %("exec")
except Exception,e:
print e
def clickDown(self):
try:
#获取下载元素对象
download=self.driver.find_element_by_xpath("//*[@id=\"new-tab-cont\"]/div/div[3]/ul/li[1]/a[1]")
#如果元素存在
if download:
#点击该元素执行下载操作
download.click()
else:
print "The element %s not exists!" %("fa fa-download j-dload")
except Exception,e:
print e
def GetResutl(self):
try:
try:
#获取命令出错或执行异常,显示异常信息的元素对象
#超过60秒如果找不到该元素,失败
text_danger=WebDriverWait(self.driver, 60).until(lambda driver: driver.find_element_by_xpath("//*[@id=\"new-tab-cont\"]/div/div[3]/div/div[1]/pre"))
#如果元素存在
if text_danger:
#获取元素的文本信息
errInfro=text_danger.text
#获取屏幕截图
self.RunErrorImage()
print errInfro
except Exception,e:
pass
try:
#获取成功时显示的文本信息,超过300秒元素不存在则失败
text_success=WebDriverWait(self.driver, 300).until(lambda driver: driver.find_element_by_class_name("text-success"))
#如果元素存在
if text_success:
#获取屏幕截图
self.SuccessImage()
print "sql run successs......"
#点击下载按钮下载运行结果文件
self.clickDown()
except Exception,e:
print e
finally:
#最后关闭浏览器
self.driver.close()
def run(self):
try:
cmd=self.openCmd()
self.inputCMD(cmd)
self.runCmd()
self.GetResutl()
print "success......"
except Exception,e:
print e
finally:
#最后关闭浏览器
self.driver.close()
def test():
RunXQL()
if __name__=="__main__":
test()
WEL测试
- 粉丝: 4159
- 资源: 47
最新资源
- (2025)国家基层糖尿病防治管理指南认证考试试题及答案.docx
- (2025)国家公务员录用考试行测常识题库及答案.docx
- (2025)汉字听写大会试题库(附答案).docx
- (2025)国家开放大学《中国法律史》形成性考核1-4与参考答案.docx
- (2025)工业机器人技术题库及答案.docx
- (2025)科创板股票投资知识题库及答案.docx
- (2025)护理三基基础知识考试题库(含答案).docx
- 知识领域:仪器仪表,变流器,自动控制 关键词:光伏MPPT,电压控制器,微电网,河南求同电气,光伏模拟实验系统
- STM32F107各种接口程序合集工程文件 包含串口,CAN,时钟芯片,FLASH,外包AT25320储存,数据结构,枚举,适合刚刚出来工作的工程师以及进阶工程师 1.提供AD STM32F107原
- 基于fpga的多功能pwm模块设计 可应用于:dab,llc,buck,boost,全桥,推娩等dcdc电路 功能: 1.输出多路互补的pwm 2.每路互补pwm死区可调 3.每路互补pwm频率独立
- nianhuishougao
- 三菱PLC分拣程序基于三菱FX系列的分拣程序,可用于学习
- 电力系统的物理信息神经网络python源代码 代码按照高水平文章复现 介绍了一种在电力系统中应用物理信息神经网络的框架 利用控制电力系统的基本物理定律,并受到机器学习领域最新发展的启发,我们提出了一
- 知识领域:变流器,自动控制 关键词:软锁相环,河南求同电气,电压不平衡,微电网并网系统,变流器
- 三菱FX3U与4台英威腾GD系列变频器通讯案例实战程序 有注释,并附送程序,有接线方式,设置 器件:三菱FX3U的PLC,4台英威腾GD系列变频器,昆仑通态 功能:实现频率设
- 中颖正弦波矢量电动车控制器 1-提供原理图 2-提供pcb图 3-提供C源代码(主芯片SH79F3213) 带自学习功能,可任意匹配电机
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈