使用Python的DrissionPage模块,通过HTTP协议对网站完整访问,可以有效提高网络安全,但是DrissionPage做的并不完美。
from DrissionPage import ChromiumPage
from DrissionPage import WebPage
from DrissionPage import ChromiumOptions
from DrissionPage.common import Settings
from DrissionPage.common import Keys
from DrissionPage.common import By
from DrissionPage.common import Actions
from DrissionPage.common import wait_until
from DrissionPage.common import make_session_ele
from DrissionPage.common import configs_to_here
from DrissionPage.errors import ElementNotFoundError
from DrissionPage.items import SessionElement
from DrissionPage.items import ChromiumElement
from DrissionPage.items import ShadowRoot
from DrissionPage.items import NoneElement
from DrissionPage.items import ChromiumTab
from DrissionPage.items import WebPageTab
from DrissionPage.items import ChromiumFrame
import smtplib
import time
from email import generator
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# from email.header import Header
class NetcoutCircuitReport:
def __init__(self, username, password):
self.input = None
self.select = None
self.Netflow = []
self.files = []
# self.options = ChromiumOptions().auto_port()
self.options = ChromiumOptions()
self.options.ignore_certificate_errors()
self.page = ChromiumPage(self.options)
# self.page = WebPage() #How to set initialation option for WebPage?
# login NETSCOUT dashboard
self.page.set.cookies.clear()
self.page.get("https://itsusra5474pb07.jnj.com:8443/racommon/NSLogin.jsp?redirect=/console")
self.page.set.window.full() #it has conflict with main display setting under laptop multi display circumtance.
self.page.ele('#usernameText').input(username)
self.page.ele('#passwordText').input(password)
self.page.ele("#submitBtn").click()
self.page.wait(50)
#def login_netscout_dashboard(self):
def select_traffic_monitor(self):
#open Traffic Monitor section
self.page.ele("#ember385").child("tag:button").next("tag:button").click()
self.page.wait(30)
def select_report_configuration(self):
#open Report Configuration
self.page.ele("#ember340").child("tag:button").next("tag:button").click()
self.page.wait(50)
def select_internet_circuit_devices(self, devices):
#select Internet-Circuit Device
self.devices = devices
self.input = self.page.ele("#INTERFACE_LIST1").child("tag:form").child("tag:input")
for site in devices:
self.input.clear()
self.page.actions.move_to(self.input).click().type(self.devices[site])
self.page.wait(50)
# print(self.page.ele("#ui-id-1").child().child("tag:tr"))
#