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) ![1768394942076](https://i-blog.csdnimg.cn/img_convert/7f2853224393788448f5fe9afcbbf4ac.png) Firefox的驱动:geckodriver.exe 浏览器和驱动出现不兼容时试一试: [googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json](https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json) ![1768401752019](https://i-blog.csdnimg.cn/img_convert/2e2ed005539eb946cedd5a00ec7fa261.png) ```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的入侵检测:基于机器学习,学习大量的正确的数据包和请求,一旦发现某个数据包与已经学习过的匹配度很低,则可疑。

相关推荐
北京耐用通信5 分钟前
工业通信优选:耐达讯自动化实现CC-Link IE转Modbus RTU稳定传输
人工智能·物联网·网络协议·自动化·信息与通信
成为你的宁宁16 分钟前
【Docker 与 Docker-Compose 实战:从零开始容器化部署若依项目,从单容器分步运行到 Compose 一键编排】
运维·docker·容器·docker-compose
向往着的青绿色33 分钟前
备份是个好习惯 BugKuCTF题目题解
网络安全·php·安全威胁分析·ctf·安全架构·安全性测试·威胁分析
电商API&Tina39 分钟前
电商数据采集API接口||合规优先、稳定高效、数据精准
java·javascript·数据库·python·json
玲娜贝儿--努力学习买大鸡腿版1 小时前
hot 100 刷题记录(1)
数据结构·python·算法
兮℡檬,1 小时前
答题卡识别判卷
开发语言·python·计算机视觉
123过去1 小时前
pixiewps使用教程
linux·网络·测试工具·算法·哈希算法
阆遤1 小时前
利用TRAE对nanobot进行安全分析并优化
python·安全·ai·trae·nanobot
Codefengfeng2 小时前
2024年四川省第二届网信行业技能竞赛-数据安全赛项决赛WP
网络安全
H_老邪2 小时前
Linux 与 Docker 常用命令
linux·运维·服务器·docker