20.基于Selenium实现界面自动化控制

一、为什么需要操作Web界面

1、通常情况下,网络安全相关领域,更多都是偏重于协议和通信。

2、但是,如果协议通信过程被加密或者无法了解其协议构成,是无法直接通过协议进行处理。此时,可以考虑模拟U操作,进而实现相对应的部分功能。

二、模拟UI操作的原理

1、运行被操作的程序,使其界面出现。

2、找到被操作的界面元素(方法一:基于元素的特征进行识别,方法二:图像识别和对比,openc)

3、对其进行操作:输入、单击、右键等

4、对操作后的结果进行验证,确认操作是成功的

三、基于Selenium实现

在终端运行以下命令,确保 selenium 安装在当前 Python 环境:

复制代码
pip install selenium

如果要操作windows元素,则使用库uiautomation,如果要处理移动端,appium

ChromeDriver 下载地址:

chromedriver.storage.googleapis.com/index.html

[Chrome for Testing availabilityhttps://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json)

Firefox的驱动:geckodriver.exe

浏览器和驱动出现不兼容时试一试:

googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json

python 复制代码
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
import time


chrome_options = Options()
# 1. 指定driver和浏览器路径
chrome_options.executable_path = 'D:/CyberSecurity/tools/chromedriver-win64/chromedriver.exe'
chrome_options.binary_location = 'D:/BaiduNetdiskDownload/Chrome/App/chrome.exe'
#
# # 2. 增加关键启动参数(解决空白页/加载异常)
chrome_options.add_argument("--no-sandbox")  # 禁用沙箱模式(Windows下部分环境需要)
# chrome_options.add_argument("--disable-dev-shm-usage")  # 避免临时目录内存不足
chrome_options.add_argument("--start-maximized")  # 启动时最大化窗口
# chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])  # 关闭自动测试提示

# 启动浏览器并访问页面
driver = webdriver.Chrome(options=chrome_options)
driver.get('http://192.168.102.131:8080/woniusales/')

# 利用DOM的识别机制,去识别和操作界面元素
# 通过ID定位"用户名输入框",并输入admin
driver.find_element(By.ID, "username").send_keys("admin")
time.sleep(1)
driver.find_element(By.ID, "password").send_keys("admin123")
time.sleep(1)
driver.find_element(By.XPATH,"//*[@id='verifycode']").send_keys("0000")
time.sleep(1)
driver.find_element(By.XPATH,"/html/body/div[4]/div/form/div[6]/button").click()
time.sleep(2)
# 刷新
driver.refresh()
# driver.forward()
# print(driver.get_cookies())

if '请扫描商品条码' in driver.page_source:
    print("登录成功。")
else:
    print('登录失败。')

time.sleep(5)  # 等待观察页面是否加载

网络安全的AI应用:入侵检测

传递的入侵检测:基于特征,某个流量或请求,存在一些可疑的特征时,进行预警或防护

基于AI的入侵检测:基于机器学习,学习大量的正确的数据包和请求,一旦发现某个数据包与已经学习过的匹配度很低,则可疑。

相关推荐
羲云网络1 小时前
GPT Image 2.6 接入指南:Flare、Sunburst 怎么选,编辑失败如何排查
人工智能·python·aigc·图像生成·acedatacloud
橙橙笔记4 小时前
具身智能的学习 - 完成一个机械臂 第1节
python·学习·机械臂·具身智能
菩提小狗4 小时前
每日安全情报报告 · 2026-11-07
网络安全·漏洞·cve·安全情报·每日安全
小小张说故事5 小时前
Python 的 class 语句到底执行了什么?拆开 __prepare__、metaclass.__new__ 和那个被讲反的 __set_name__ 顺序
python
讯捷蓝达5 小时前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器
天天被压力7 小时前
【A股分钟级高频数据完全手册 #07】北交所历史分钟K线接口:京市Pro版分时批量
java·人工智能·python
天天被压力7 小时前
【A股分钟级高频数据完全手册 #08】股票日、分时数据接口对比:普通分时与Pro版差异实测
java·人工智能·python
特立独行的猫A7 小时前
AI 时代,我为什么推荐用 cj-tauri 开发桌面应用
java·后端·python
小lo想吃棒棒糖7 小时前
把机器人训练从 GPU 搬到昇腾 NPU:启元 Q1 起身动作 PPO 训练全记录
python·机器人·昇腾·启元机器人
Thanks_ks8 小时前
【第 006 讲】搭建 PyCharm 开发环境:PyCharm 的下载与安装 | 初始设置与常用配置
ide·python·pycharm·开发工具·jetbrains·开发环境·集成开发环境