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

树莓派4上Selenium Chromedriver无法移动窗口位置求助

解决树莓派4 Debian12上Selenium Chromium窗口定位失效问题

核心原因与对应解决方案

1. 禁用窗口管理器自动窗口放置

Debian 12默认窗口管理器会强制将新窗口居中,忽略Chromium的位置参数。给Chromium添加启动参数关闭该功能:

chrome_options.add_argument("--disable-features=AutoWindowPlacement")

2. 切换到Xorg显示服务器

Debian 12默认使用Wayland,而Chromium在Wayland环境下对窗口位置的控制支持存在缺陷:

  • 登录时点击用户名旁的齿轮图标,选择「Xorg」会话登录
  • 或编辑/etc/gdm3/daemon.conf,取消WaylandEnable=false的注释,重启系统强制使用Xorg

3. 解决窗口尺寸不精确问题

窗口尺寸偏差可能来自GPU渲染或最小尺寸限制,可尝试:

  • 添加--disable-gpu参数关闭GPU加速
  • 同时指定窗口大小与位置参数,确保参数生效顺序:
chrome_options.add_argument("--window-size=250,250")
chrome_options.add_argument("--window-position=500,1000")

修改后测试脚本

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
# 禁用自动窗口放置
chrome_options.add_argument("--disable-features=AutoWindowPlacement")
# 指定初始窗口大小与位置
chrome_options.add_argument("--window-size=250,250")
chrome_options.add_argument("--window-position=500,1000")
# 关闭GPU加速(可选)
chrome_options.add_argument("--disable-gpu")

driver = webdriver.Chrome(options=chrome_options)
driver.get("https://google.com")

print(driver.get_window_size())
print(driver.get_window_position())

# 二次设置位置验证
driver.set_window_position(300, 300)
print(driver.get_window_position())

验证提示

运行修改后的脚本,观察显示器窗口位置是否与get_window_position()返回值一致。若仍有问题,检查是否存在窗口对齐类插件干扰窗口定位逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 16:30:22