树莓派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
相关产品推荐
相关产品推荐

