You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用Python执行浏览器控制台命令?及Roblox授权问题求助

如何用Python 3复刻浏览器控制台命令执行?

首先,要在Python里模拟Chrome控制台执行JavaScript命令,最直接的方案就是用Seleniumexecute_script()方法——这个方法完全等价于你在Chrome控制台里敲代码,会在当前页面的上下文环境中运行指定的JS。

比如你要执行一个简单的控制台输出,直接写:

driver.execute_script("console.log('Hello from Python!');")

如果需要获取JS执行的返回值(比如拿页面数据),只要在JS代码前加return就行:

page_title = driver.execute_script("return document.title;")
print(page_title)

针对你遇到的Roblox Unauthorized问题的修复

看了你的代码,发现几个关键问题导致登录状态不生效、数据加载失败,下面是修正后的完整方案:

问题分析

  1. ChromeOptions配置顺序错误:你先创建了driver,再去设置options——这完全没用,因为driver初始化时根本没用到这些配置,Roblox直接识别出这是自动化浏览器,返回Unauthorized。
  2. Cookie添加逻辑不严谨:没有指定Cookie的域名、路径等关键参数,浏览器无法把Cookie绑定到Roblox域名下,导致登录状态不被认可。
  3. 反检测配置不全:仅修改navigator.webdriver已经不够了,Roblox现在有更严格的自动化检测机制。

修正后的代码

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import time

# 第一步:先配置Chrome的反检测选项
options = webdriver.ChromeOptions()
# 隐藏自动化标识核心配置
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument('--disable-blink-features=AutomationControlled')
# 设置真实的User-Agent(建议用你当前Chrome的UA,避免被识别)
options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36')

# 第二步:用配置好的options初始化driver(注意现在推荐用Service类管理驱动)
service = Service('C:\\Users\KDJ\Documents\GameJoiner\chromedriver.exe')
driver = webdriver.Chrome(service=service, options=options)

# 第三步:正确添加认证Cookie
# 先访问Roblox的页面,让浏览器绑定目标域名
driver.get('https://www.roblox.com/')
# 添加.ROBLOSECURITY Cookie,必须指定域名等参数
driver.add_cookie({
    'name': '.ROBLOSECURITY',
    'value': '你的有效Cookie值',  # 替换成你的实际Cookie
    'domain': '.roblox.com',
    'path': '/',
    'secure': True,
    'httpOnly': True
})
# 刷新页面让Cookie生效
driver.refresh()

# 第四步:执行控制台命令获取数据(示例:获取Roblox货币数量,实际要根据页面真实JS调整)
# 比如假设页面中有全局方法可以获取余额,就这么写
robux_balance = driver.execute_script("return Roblox.AccountSettings.getRobuxBalance();")
print(f"你的Robux余额:{robux_balance}")

# 执行其他控制台命令示例
driver.execute_script("console.log('控制台命令执行成功!');")

# 后续操作,比如停留查看结果
time.sleep(5)
driver.quit()

关键注意事项

  • 驱动版本匹配:ChromeDriver的版本必须和你本地安装的Chrome版本完全一致,否则会出现兼容性问题。
  • Cookie有效性:.ROBLOSECURITY Cookie有有效期,如果你用的是过期的Cookie,肯定会提示Unauthorized,建议从当前登录的Chrome中复制最新的Cookie。
  • 避免频繁操作:Roblox对自动化行为检测很严,频繁刷新、执行脚本可能导致账号被限制,建议适当添加延时。
  • 动态调整JS代码:Roblox的页面JS可能会更新,如果你发现某个获取数据的方法失效了,需要重新在Chrome控制台里确认最新的JS调用方式。

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

火山引擎 最新活动