用Python脚本实现登录sv,访问http服务器,ftp服务器并下载资源

用Python实现登录sv,访问http服务器,ftp服务器并下载资源
#-- coding: utf-8 --

import unittest
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
#import system
import os
import time
from selenium.webdriver.common.keys import Keys
import sys
print sys.getdefaultencoding()
reload(sys)
sys.setdefaultencoding(‘utf8’)
#system.setProperty(“webdriver.firefox.bin”, “C:/Program Files (x86)/Mozilla Firefox/firefox.exe”)
from ftplib import FTP
import os,string,datetime
import socket
import re

class MYFTP:
def init(self):
#
#self.serveraddr = serveraddr
#self.username = username
#self.password = password
#self.remotedir = remotedir
#self.port = port
self.ftp = FTP()
self.file_list = []
# self.ftp.set_debuglevel(2)
def del(self):
self.ftp.close()
# self.ftp.set_debuglevel(0)
def login(self,serveraddr,username,password,port):
self.serveraddr = serveraddr
self.username = username
self.password = password
self.port = port
ftp = self.ftp
try:
timeout = 10
socket.setdefaulttimeout(timeout)
ftp.set_pasv(True)

        ftp.connect(self.serveraddr, self.port)
       
        
        ftp.login(self.username, self.password)
       
        print("login success")
    except Exception,e:
        print Exception,":",e

def download_file(self, localfile, remotefile):
    file_handler = open(localfile, 'w')
    self.ftp.retrbinary('RETR %s'%(remotefile), file_handler.write)
    file_handler.close()
    print("ftp download success")

def upload_file(self, localfile, remotefile):
    if not os.path.isfile(localfile):
        return
    file_handler = open(localfile, 'r')
    self.ftp.storbinary('STOR %s' %remotefile, file_handler)
    file_handler.close()

def dowload_ftp_1(local_dir):
ftp_dir = (’/操作系统/Win7/Oem7F5.exe’).encode(‘gbk’)
#ftp_file_source = ftp_dir+(‘4MLinux-10.0-allinone-edition.iso’)
ftp = MYFTP()
ftp.login(“192.168.96.6”,“sgtest/gu_rongsong”,“talent”,“21”)
local_file = local_dir+‘test.exe’
ftp.download_file(local_file,ftp_dir)
#ftp.download_file(“D:/test.exe”,ftp_dir)
def dowload_ftp_2(local_dir):
ftp_dir = (’/NGFW/’)#.decode(‘utf8’)
file_name = (‘Topsec-JL-A14-1130-概念与设计方案.rar’)
ftp_file_source = ftp_dir+file_name
#print ftp_file_source
ftp = MYFTP()
ftp.login(“172.18.25.40”,“admin”,“talent”,“21”)
local_file = local_dir+‘test.rar’
ftp.download_file(local_file,ftp_file_source)

def login_sv_firefox(ipaddr,user,passwd):

status = 0
firefoxDriver=webdriver.Firefox(executable_path="geckodriver")



firefoxDriver.get(ipaddr)
windle_source = firefoxDriver.current_window_handle
print firefoxDriver.title
print firefoxDriver.current_url
print windle_source
all_handles = firefoxDriver.window_handles
time.sleep(5)
try:
    #firefoxDriver.switch_to_alert().accept()
    elem_name = firefoxDriver.find_element_by_name('name_1')
    
    elem_name.send_keys(user.decode('utf8'))
    time.sleep(3)
    elem_passwd = firefoxDriver.find_element_by_name('pwd_1')
   
    elem_passwd.send_keys(passwd)
    time.sleep(3)
    elem3 = firefoxDriver.find_element_by_id('con_one_1')
    time.sleep(3)
    elem3.send_keys(Keys.ENTER)
    
    
except:
    print ('SV 认证出错,请检查用户名密码是否正确').encode('gbk')
    logout_sv(firefoxDriver)
    return status
status = 1 
time.sleep(20)
try:
    elem_source_0 = firefoxDriver.find_element_by_id('na_0')
    time.sleep(5)
    elem_source_0.click() 
    time.sleep(5)
    all_handles = firefoxDriver.window_handles
    for handle in all_handles:
        #print handle
        if handle != windle_source:
            firefoxDriver.switch_to.window(handle)
            #print firefoxDriver.title
            if firefoxDriver.title=='IIS7':
                print ('登录http服务器成功').encode('gbk')
                firefoxDriver.close()
            
except:
    print "no source 0"
    firefoxDriver.switch_to.window(windle_source)
    logout_sv(firefoxDriver)
    #print 
    #return 0

'''
firefoxDriver.switch_to.window(windle_source)


try:
    #handle_ftp = ''
    elem_source_1 = firefoxDriver.find_element_by_id('na_1')
    time.sleep(5)
    #elem_source_1.click() 
    print elem_source_1.text
    if elem_source_1.text=='25.40':
        firefoxDriver.get('ftp://admin:talent@172.18.25.40/')
        print ('私有ftp服务器登录成功').decode('utf8')
        firefoxDriver.close()
except:
    print ("no source 1  ")

firefoxDriver.switch_to.window(windle_source)


elem_source_2 = firefoxDriver.find_element_by_id('na_3')

elem_source_2.click() 
time.sleep(2)
print elem_source_2.text
if elem_source_1.text=='ftp':
    #firefoxDriver.get('ftp://gu_rongsong:talent@192.168.96.6/')
    #print ('96.6 ftp服务器登录成功').decode('utf8')
    firefoxDriver.close()

except:

print "no source 3 "

'''
firefoxDriver.switch_to.window(windle_source)
try:

    elem_source_3 = firefoxDriver.find_element_by_id('na_2')
    time.sleep(1)
    elem_source_3.click() 
    time.sleep(2)
    all_handles = firefoxDriver.window_handles
    #ipaddr_webui = 'http://192.168.96.5'
    user_name = 'lu_yanping'
    passwd = 'talent'
    for handle in all_handles:
        #print handle
        if handle != windle_source:
            firefoxDriver.switch_to.window(handle)
            print firefoxDriver.title
            if '2010' in firefoxDriver.title:
                print ('打开96.5服务器成功').encode('gbk')
                elem1 = firefoxDriver.find_element_by_name('txtUid')
                elem1.send_keys(user_name)
                elem2 = firefoxDriver.find_element_by_name('txtPwd')
                elem2.send_keys(passwd)
                elem3 = firefoxDriver.find_element_by_id('btnSubmit')
                elem3.send_keys(Keys.ENTER)
                time.sleep(2)
                #elem4 = firefoxDriver.find_element_by_id('tvTreeViewt19')
                #elem4.click()
                time.sleep(2)
                #elem5 = firefoxDriver.find_element_by_id('tvTreeViewt21')
                #elem5.click()
                time.sleep(2)  
                #elem6 = firefoxDriver.find_element_by_name('btnAdd')
                #elem6.click()
                time.sleep(2)
                print ('登陆96.5服务器成功').encode('gbk')
                firefoxDriver.close()
except:
    firefoxDriver.switch_to.window(windle_source)
    logout_sv(firefoxDriver)
    print "no source 2"
    #return 0   
time.sleep(5)
firefoxDriver.switch_to.window(windle_source)

firefoxDriver.switch_to.window()

#logout_sv(firefoxDriver)
time.sleep(15)

firefoxDriver.quit()
return status
#print firefoxDriver        

def login_sv_google(ipaddr,user,passwd):

#firefoxDriver=webdriver.Firefox(executable_path="geckodriver")

#chromedriver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
#os.environ["webdriver.chrome.driver"] = chromedriver
firefoxDriver = webdriver.Chrome(executable_path="chromedriver")
#webdriver.Chrome()
firefoxDriver.get(ipaddr)
windle_source = firefoxDriver.current_window_handle
print firefoxDriver.title
print firefoxDriver.current_url
print windle_source
all_handles = firefoxDriver.window_handles
try:
    firefoxDriver.switch_to_alert().accept()
    elem_name = firefoxDriver.find_element_by_name('name_1')
    
    elem_name.send_keys(user.decode('utf8'))
    time.sleep(3)
    elem_passwd = firefoxDriver.find_element_by_name('pwd_1')
   
    elem_passwd.send_keys(passwd)
    time.sleep(3)
    elem3 = firefoxDriver.find_element_by_id('con_one_1')
    time.sleep(3)
    elem3.send_keys(Keys.ENTER)
    
    
except:
    print ('SV 认证出错,请检查用户名密码是否正确').decode('utf8')
    logout_sv(firefoxDriver)
    return 1
time.sleep(20)
try:
    elem_source_0 = firefoxDriver.find_element_by_id('na_0')
    time.sleep(5)
    elem_source_0.click() 
    time.sleep(5)
    all_handles = firefoxDriver.window_handles
    for handle in all_handles:
        #print handle
        if handle != windle_source:
            firefoxDriver.switch_to.window(handle)
            #print firefoxDriver.title
            if firefoxDriver.title=='IIS7':
                print ('登录http服务器成功').decode('utf8')
                firefoxDriver.close()
            
except:
    print "no source 0"
    logout_sv(firefoxDriver)
    #print 
    return 1

firefoxDriver.switch_to.window(windle_source)
try:

    elem_source_3 = firefoxDriver.find_element_by_id('na_2')
    time.sleep(1)
    elem_source_3.click() 
    time.sleep(2)
    all_handles = firefoxDriver.window_handles
    #ipaddr_webui = 'http://192.168.96.5'
    user_name = 'lu_yanping'
    passwd = 'talent'
    for handle in all_handles:
        #print handle
        if handle != windle_source:
            firefoxDriver.switch_to.window(handle)
            print firefoxDriver.title
            if '2010' in firefoxDriver.title:
                print ('打开96.5服务器成功').decode('utf8')
                elem1 = firefoxDriver.find_element_by_name('txtUid')
                elem1.send_keys(user_name)
                elem2 = firefoxDriver.find_element_by_name('txtPwd')
                elem2.send_keys(passwd)
                elem3 = firefoxDriver.find_element_by_id('btnSubmit')
                elem3.send_keys(Keys.ENTER)
                time.sleep(2)
                elem4 = firefoxDriver.find_element_by_id('tvTreeViewt19')
                elem4.click()
                time.sleep(2)
                elem5 = firefoxDriver.find_element_by_id('tvTreeViewt21')
                elem5.click()
                time.sleep(2)  
                elem6 = firefoxDriver.find_element_by_name('btnAdd')
                elem6.click()
                time.sleep(2)  
                firefoxDriver.close()
except:
    print "no source 2"
       
time.sleep(5)
firefoxDriver.switch_to.window(windle_source)

firefoxDriver.switch_to.window()

#logout_sv(firefoxDriver)
time.sleep(15)

firefoxDriver.quit()
#print firefoxDriver        

def login_sv_iexplorer(ipaddr,user,passwd):

firefoxDriver=webdriver.Firefox()
#chromedriver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
#os.environ["webdriver.chrome.driver"] = chromedriver
#driver = webdriver.Chrome(chromedriver)
#driver = webdriver.Chrome()
firefoxDriver.get(ipaddr)
try:
    elem_name = firefoxDriver.find_element_by_name('name_1')
    elem_name.send_keys(user)
    elem_passwd = firefoxDriver.find_element_by_name('pwd_1')
    elem_passwd.send_keys(passwd)
    elem3 = firefoxDriver.find_element_by_id('con_one_1')
    elem3.send_keys(Keys.ENTER)
    
except:
    print ('SV 认证出错,请检查用户名密码是否正确').decode('utf8')
time.sleep(10)
try:
    elem_source_0 = firefoxDriver.find_element_by_id('na_0')
    print  elem_source_0.text()
    elem_source_0.click() 
except:
    print "no source 0"
    return 1
try:

    elem_source_1 = firefoxDriver.find_element_by_id('na_1')
    print  elem_source_1.text()
    elem_source_1.click() 
except:
    print "no source 1 "
try:

    elem_source_2 = firefoxDriver.find_element_by_id('na_2')
    print  elem_source_2.text()
    elem_source_2.click() 
except:
    print "no source 2 "
try:

    elem_source_3 = firefoxDriver.find_element_by_id('na_3')

    elem_source_3.click() 
except:
    print "no source 3"
try:

    elem_source_4 = firefoxDriver.find_element_by_id('na_4')

    elem_source_4.click() 
except:
    print "no source 4"       



time.sleep(15)




firefoxDriver.quit()
print firefoxDriver

def logout_sv(firefoxDriver):
try:
userlogout_location = firefoxDriver.find_element_by_xpath("//[@id=‘u_name’]")
time.sleep(3)
userlogout_location.click()
logout_button = firefoxDriver.find_element_by_xpath("//
[@id=‘menu_right’]/li[2]")
time.sleep(3)
logout_button.click()
time.sleep(3)
#message=firefoxDriver.switch_to_alert().text
#print(message)
firefoxDriver.switch_to_alert().accept()
print (‘注销当前用户成功’).encode(‘gbk’)
time.sleep(3)
firefoxDriver.close()
except:
print (‘注销当前用户’).encode(‘gbk’)

    #firefoxDriver.switch_to_alert().

if name == ‘main’:
ipaddr = ‘https://172.18.25.85
user = ‘zhang_hanchi’
passwd = ‘talent’
dir_local = ‘F:/py/’
#print “脚本名:”, sys.argv[0]
#dowload_ftp_1(dir_local)
#dowload_ftp_2(dir_local)

if len(sys.argv)==1:
    print ("未传入参数,使用默认参数开始测试").encode('gbk')
    login_sv_firefox(ipaddr,user,passwd)
    #login_sv_google(ipaddr,user,passwd)
    
    while(1):
        try:
            dowload_ftp_1(dir_local)
        except:
            print ('96.6下载出错').encode('gbk')
            continue
        try:
            dowload_ftp_2(dir_local)
        except:
            print ('25.40下载出错').encode('gbk')
            continue
        time.sleep(120)
elif len(sys.argv)==5:  
    print ("传入参数个数正确,开始测试 ").encode('gbk')
    result = 1
    result = login_sv_firefox(sys.argv[1],sys.argv[2],sys.argv[3])
    #dowload_ftp_1()
    
    while(result):
        try:
            dowload_ftp_1(sys.argv[4])
        except:
            print ('96.6下载出错').encode('gbk')
            continue
        try:
            dowload_ftp_2(sys.argv[4])
        except:
            print ('25.40下载出错').encode('gbk')
            continue
        time.sleep(120)
    
else:
    print ("传入参数错误,请重新输入").encode('gbk')
    sys.exit()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值