为了验证路由管理界面Traffic Rules功能菜单最多能添加128条规则,而手动128条规则添加太累了,就写了个简单的脚本自动添加规则,这样比较省事。
电脑连接BR500路由,已经配置好Python3.7.0和Selenium3.14的环境,谷歌浏览器68版本,Google Chrome Webdriver2.42
脚本如下:
#coding:utf-8
from selenium import webdriver
from time import sleep
# 后面是你的浏览器驱动位置,记得前面加r'','r'是防止字符转义的
driver = webdriver.Chrome(r'C:\python-3.7.0\chromedriver.exe')
# 打开路由器管理页面
driver.get("https://www.routerlogin.net")
sleep(5)
#最大化浏览器
driver.maximize_window()
#定位到ADVANCED菜单
driver.find_element_by_xpath("//div/div/ul[contains(.,'ADVANCED')]").click()
sleep(2)
#查找Firewall菜单并展开
driver.find_element_by_xpath("//ul/li/div/span/span[contains(.,'Firewall')]").click()
sleep(1)
#查找Taffic Rules菜单按钮并点击
driver.find_element_by_xpath("//ul/li/span[contains(.,'Traffic Rules')]").click()
for i in range(2,130,1):
#查找并点击Add按钮
driver.find_element_by_id("traffic_rules_1").click()
sleep(2)
#定位到Name输入框
#定义循环添加128 个rules??
driver.find_element_by_xpath("//div/span/input[@id='name']").send_keys(i)
#Protocol默认all
#Source Zone 默认Lan1
#Destination Zone选择Wan
driver.find_element_by_id("editFirewall_PanelView_18").click()
sleep(1)
#目的IP地址填10.10.10.X
driver.find_element_by_id("destAddressGroup_1").send_keys("10")
driver.find_element_by_id("destAddressGroup_2").send_keys("10")
driver.find_element_by_id("destAddressGroup_3").send_keys("10")
driver.find_element_by_id("destAddressGroup_4").send_keys(i)
#直接点击Apply
driver.find_element_by_id("editFirewall_PanelView_26").click()
sleep(3)
print("Add 128 Rules")
#关闭浏览器,退出drive
driver.quit()
全部跑完花了几分钟,嗯,这个简单的自动化应用还是值得的。