Selenium Chrome浏览器与Phantom钱包交互自动化问题求助
Phantom Wallet Chrome扩展自动化实现步骤(Selenium交易机器人)
1. 跳过助记词手动输入:复用已登录的Chrome用户目录
每次启动Selenium都手动输助记词,是因为默认用临时用户目录。你可以指定已配置好Phantom Wallet并完成登录的Chrome用户数据目录,启动后扩展会保持登录状态:
from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() # Windows路径示例:C:\Users\<你的用户名>\AppData\Local\Google\Chrome\User Data # Mac路径示例:~/Library/Application Support/Google/Chrome chrome_options.add_argument(r"user-data-dir=C:\Users\YourName\AppData\Local\Google\Chrome\User Data") # 用默认配置文件就填Default,自定义配置文件填对应名称 chrome_options.add_argument(r"profile-directory=Default") driver = webdriver.Chrome(options=chrome_options)
注意:启动前必须关闭所有本地Chrome窗口,否则会出现进程冲突。
2. 打开Phantom Wallet扩展页面
先获取扩展ID:
- 打开本地Chrome,进入
chrome://extensions/,开启开发者模式,即可看到Phantom Wallet的ID(格式类似bfnaelmomeimhlpmgjnjophhpkkoljpa)
用Selenium打开扩展主页:
extension_id = "bfnaelmomeimhlpmgjnjophhpkkoljpa" driver.get(f"chrome-extension://{extension_id}/home.html")
3. 自动化输入密码登录
如果扩展需要重新验证密码,用等待机制确保元素加载完成后操作:
from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 等待密码输入框加载 password_input = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.XPATH, "//input[@type='password']")) ) password_input.send_keys("你的钱包密码") # 点击解锁按钮 unlock_btn = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.XPATH, "//button[contains(text(),'Unlock')]")) ) unlock_btn.click()
XPATH需根据实际页面结构调整,可通过Chrome开发者工具定位元素。
4. 自动化提交交易
当网站触发交易后,Phantom会弹出确认窗口,切换到该窗口完成操作:
# 获取所有窗口句柄,切换到最新打开的Phantom弹窗 all_windows = driver.window_handles driver.switch_to.window(all_windows[-1]) # 等待确认按钮加载并点击 confirm_btn = WebDriverWait(driver, 15).until( EC.element_to_be_clickable((By.XPATH, "//button[contains(text(),'Approve') or contains(text(),'Confirm')]")) ) confirm_btn.click() # 交易完成后切回原网站窗口 driver.switch_to.window(all_windows[0])
注意事项
- Phantom Wallet版本更新可能导致页面元素变化,需定期检查调整XPATH
- 确保Selenium使用的Chrome版本与本地安装版本一致,避免兼容性问题
- 避免高频自动化操作,防止触发钱包或网站的反机制
内容的提问来源于stack exchange,提问作者xyz
相关产品推荐
相关产品推荐

