码迷,mamicode.com
首页 > 编程语言 > 详细

Python+Selenium备份设备配置

时间:2018-08-03 18:02:56      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:settings   span   统一   水平   nbsp   mat   xpath   end   ble   

从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(),'文')]")         #匹配正则表达式


Python+Selenium备份设备配置

标签:settings   span   统一   水平   nbsp   mat   xpath   end   ble   

原文地址:http://blog.51cto.com/848281/2154167

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!