溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python+Selenium備份設備配置

發(fā)布時間:2020-06-24 07:24:10 來源:網絡 閱讀:356 作者:rewins 欄目:網絡管理

從2016年認識Python以來,只會用telnet或者ssh來操作網絡設備實現(xiàn)自動執(zhí)行命令,對web界面的設備基本上束手無策,直到最近跳槽公司全是深信服設備,后臺是ssh,抱歉,不對客戶開放,SNMP oid只提供那么幾個,要批量操作,深信服的建議是買集中管理器,統(tǒng)一設備版本,我去NM。。。后來發(fā)現(xiàn)Python可以用爬蟲,再后來發(fā)現(xiàn)還有Selenium這么個玩意兒,自動上設備上各種點,下面是一臺設備操作的代碼

#coding:utf-8

import os

import time

import shutil

from selenium import webdriver

options = webdriver.ChromeOptions()

prefs = {'profile.default_content_settings.popups':0,'download.default_directory':'E:/python/file/'}

print prefs

options.add_experimental_option('prefs',prefs)

driver = webdriver.Chrome(executable_path='E:\python\soft\chromedriver.exe',chrome_options=options)

time.sleep(5)

driver.get('https://10.0.0.1')

time.sleep(5)

username = driver.find_element_by_id('user')

username.send_keys('admin')

password = driver.find_element_by_id('password')

password.send_keys('xxxxxx')

button = driver.find_element_by_id('button')

button.click()

time.sleep(5)

driver.implicitly_wait(10)

driver.switch_to_window(driver.window_handles[-1])

driver.find_element_by_xpath("//*[contains(text(),'系統(tǒng)配置')]").click()

time.sleep(5)

driver.find_element_by_xpath("//*[contains(text(),'配置備份與恢復')]").click()

time.sleep(5)

driver.find_element_by_xpath("//*[contains(text(),'點擊下載配置')]").click()

time.sleep(60)

os.chdir(r'E:\python\file')

confFileName = os.listdir('E:\python\\file')[0]

os.rename(confFileName,'Hostname.bcf')

shutil.move('Hostname.bcf','E:\python\\backup')

driver.quit()


PS. 深信服開發(fā)寫前端的水平真的是無語,各種標簽沒id。。。還好萬能的Python有find_element_by_xpath模糊查詢,可以直接定位到需要的標簽然后給個click()動作。。。

剩下的就是各種設備操作一遍,然后適配代碼啦。。。


driver.find_element_by_xpath("//*[contains(text(),'標簽文本')]") #根據標簽文本定位標簽

driver.find_element_by_xpath("//*[contains(@id,'extend')]") #根據標簽id定位標簽

driver.find_element_by_xpath("//*[starts-with(@id,'ex')]") #定位標簽(標簽id以ex開頭)

driver.find_element_by_xpath("//*[end-with(@id,'nd')]") #定位標簽(標簽id以nd結尾)

driver.find_element_by_xpath("//*[matchs(text(),'文')]")         #匹配正則表達式


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI