Selenium Chrome窗口执行driver.close或打开新标签时置顶干扰问题求助
解决Selenium Chrome操作时抢占窗口焦点/切换桌面的问题
把Chrome窗口移到屏幕外(完全不干扰前台)
启动Chrome时将窗口位置设置到屏幕可视区域外,操作窗口时不会在当前桌面显示,也不会抢占焦点。代码示例:from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() # 将窗口移至屏幕左上角外,数值可根据屏幕分辨率调整,确保完全不可见 chrome_options.add_argument("--window-position=-32000,-32000") # 可选:设置窗口大小,避免默认尺寸过大 chrome_options.add_argument("--window-size=800,600") driver = webdriver.Chrome(options=chrome_options)后续切换广告窗口、调用
driver.close()等操作都不会影响前台游戏或其他窗口。启用Chrome无头模式(无界面后台运行)
若无需可视化Chrome界面,启用新版无头模式即可完全在后台运行,不会弹出窗口或抢占焦点:from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() # 启用功能完整的新版无头模式 chrome_options.add_argument("--headless=new") driver = webdriver.Chrome(options=chrome_options)此方法彻底解决焦点干扰问题,适合不需要可视化的测试场景。
禁止Chrome窗口自动激活(可视化场景适配)
通过Chrome实验性参数阻止窗口自动获取焦点,部分参数需根据Chrome版本调整:from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() # 禁用自动化提示相关开关,减少窗口激活触发 chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"]) chrome_options.add_experimental_option("useAutomationExtension", False) # 添加阻止窗口获得焦点的参数 chrome_options.add_argument("--no-focus-on-launch") chrome_options.add_argument("--disable-features=VizDisplayCompositor") driver = webdriver.Chrome(options=chrome_options)注意:部分参数可能随Chrome版本迭代失效,需结合实际环境测试调整。
操作后恢复游戏窗口焦点(兜底方案)
若上述方法无效,可通过Windows API强制恢复游戏窗口焦点,需先安装pywin32库:import win32gui import win32con from selenium import webdriver def restore_game_window(window_title): # 根据窗口标题查找游戏窗口句柄 hwnd = win32gui.FindWindow(None, window_title) if hwnd: # 先最小化再恢复,确保成功获取焦点(适配部分游戏) win32gui.ShowWindow(hwnd, win32con.SW_MINIMIZE) win32gui.ShowWindow(hwnd, win32con.SW_RESTORE) win32gui.SetForegroundWindow(hwnd) # 初始化Chrome驱动 driver = webdriver.Chrome() # 操作广告窗口并关闭后,恢复游戏窗口 driver.switch_to.window(ad_window_handle) driver.close() driver.switch_to.window(main_window_handle) # 替换为你的游戏窗口准确标题 restore_game_window("游戏窗口标题")此方法需知晓游戏窗口的准确标题,适合必须保留Chrome可视化的场景。
内容的提问来源于stack exchange,提问作者Faucet Crypto
相关产品推荐
相关产品推荐

