您好,登錄后才能下訂單哦!
從2016年認識Python以來,只會用telnet或者ssh來操作網絡設備實現自動執行命令,對web界面的設備基本上束手無策,直到最近跳槽公司全是深信服設備,后臺是ssh,抱歉,不對客戶開放,SNMP oid只提供那么幾個,要批量操作,深信服的建議是買集中管理器,統一設備版本,我去NM。。。后來發現Python可以用爬蟲,再后來發現還有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(),'系統配置')]").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. 深信服開發寫前端的水平真的是無語,各種標簽沒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(),'文')]") #匹配正則表達式
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。