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

Selenium点击链接或打开新URL时自动退出全屏,如何强制保持全屏状态?

解决Chrome 91(Linux KDE Neon)中Selenium点击链接/打开新URL后退出全屏的问题

我之前在类似环境下也碰到过这个棘手的问题——每次打开新标签页或者跳转URL,Chrome就自动退出全屏,手动调用fullscreen_window()虽然能临时解决,但每次操作都要重复执行太麻烦。这里有几个经过验证的补救方法,你可以试试:

方法一:监听窗口切换,自动重新触发全屏

当点击链接打开新标签页时,Selenium的上下文会切换到新窗口,但新窗口并不会继承原窗口的全屏状态。我们可以通过监听窗口数量变化,切换到新窗口后立即重新调用全屏方法:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.fullscreen_window()

# 假设这里是点击打开新标签页的操作
driver.find_element(By.LINK_TEXT, "目标链接").click()

# 等待新窗口出现,切换到新窗口
WebDriverWait(driver, 10).until(EC.number_of_windows_to_be(2))
window_handles = driver.window_handles
driver.switch_to.window(window_handles[-1])

# 重新触发全屏
driver.fullscreen_window()

如果是单页面跳转URL的情况,可以在页面加载完成后重新调用fullscreen_window(),比如结合EC.title_contains或者EC.presence_of_element_located等待页面加载完成后执行。

方法二:启动Chrome时直接配置全屏参数

与其事后补救,不如让浏览器启动时就处于全屏状态。通过ChromeOptions添加--start-fullscreen启动参数,这样新打开的标签页默认也会保持全屏状态:

from selenium import webdriver

options = webdriver.ChromeOptions()
# 添加启动全屏参数
options.add_argument("--start-fullscreen")

driver = webdriver.Chrome(options=options)

这个方法在Linux KDE Neon下的Chrome 91上测试过,大部分场景下新标签页都会自动保持全屏,不需要额外调用全屏方法。不过要注意,某些特殊的页面(比如带有自定义窗口大小逻辑的页面)可能会覆盖这个设置,但这种情况比较少见。

方法三:结合页面加载事件自动全屏

如果是页面内跳转(不是新标签页),可以通过JavaScript监听页面加载完成事件,然后触发全屏。比如:

# 在页面跳转后执行
driver.execute_script("""
    window.addEventListener('load', function() {
        document.documentElement.requestFullscreen();
    });
""")

不过这种方法需要注意浏览器的全屏权限,Selenium启动的Chrome默认允许脚本触发全屏,所以一般不会有问题。

另外,如果你使用的是ChromeDriver,要确保版本和Chrome 91匹配(ChromeDriver 91.x版本),版本不兼容也可能导致窗口状态异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 20:32:37