You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用页面点击功能,避免Selenium开发的网页跳转游戏用户篡改目标页面

现有Selenium方案优化

  • 禁用目标页所有交互:给目标页面注入JS禁用点击事件即可,彻底解决用户点击页面搜索、超链接的问题,代码如下:
goal.execute_script("document.body.style.pointerEvents = 'none';")
  • 禁用浏览器地址栏:启动Chrome时添加--app启动参数,打开的窗口会隐藏地址栏、工具栏、导航按钮,用户无法手动输入URL跳转,启动示例:
from selenium import webdriver
chrome_opt = webdriver.ChromeOptions()
# 替换为你的游戏站点域名,启动后仅展示页面主体
chrome_opt.add_argument("--app=https://你的游戏站点根域名")
start_point = webdriver.Chrome(options=chrome_opt)

截图校验方案评估

可行但不推荐作为核心判定逻辑。同URL页面可能存在动态内容(轮播图、个性化广告、登录态信息),很容易出现截图对比误判,且截图特征提取的性能远低于URL校验。如果担心前端路由伪装跳转,可以补充DOM特征校验:判定起始页是否存在目标页面独有的DOM元素,比截图方案准确率更高,示例:

from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException

def check_is_goal_page(driver):
    try:
        # 替换为目标页面独有的元素选择器
        driver.find_element(By.ID, "goal_page_unique_id")
        return True
    except NoSuchElementException:
        return False

PyQt5 Web方案适用性

非常适合开发这类程序,比Selenium更适配定制化网页游戏的需求,核心优势如下:

  • 可完全自定义窗口控件,无需通过浏览器参数 hack 就能实现隐藏地址栏、禁用右键菜单、禁止页面缩放等定制需求
  • 可以原生拦截所有页面跳转请求,只需重写acceptNavigationRequest方法即可限制仅允许本站点的超链接跳转,彻底杜绝外部链接跳转、手动输入URL等违规操作
  • 无需依赖浏览器驱动,打包分发时不会出现Selenium和浏览器版本不兼容的问题,用户使用门槛更低

PyQt5跳转拦截示例代码:

from PyQt5.QtWebEngineWidgets import QWebEnginePage
from PyQt5.QtCore import QUrl

class GameWebPage(QWebEnginePage):
    def acceptNavigationRequest(self, url: QUrl, nav_type, is_main_frame):
        # 仅允许本站点的跳转请求
        if url.host() == "你的游戏站点域名":
            return True
        # 其余请求全部拦截
        return False

内容的提问来源于stack exchange,提问作者jeff style

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 16:33:02