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

使用Python Selenium访问URL后页面仍不停刷新的问题

问题根源与修复方案

你的代码存在多个关键问题,导致页面持续刷新、无法停止:

1. 对driver.get()的返回值理解错误

driver.get(url)方法没有返回值(实际返回None),所以你写的if driver.get('https://www.google.com/'):永远会判定为False,直接进入else分支执行刷新逻辑,形成死循环。

2. 语法与逻辑混乱

  • 第一段代码存在未闭合的while循环、空的if语句块,逻辑完全不成立;
  • 第三段代码里的driver.refresh缺少括号,就算执行到也不会触发刷新,但循环依然会因为break永远不执行而持续运行;
  • 所有代码的循环逻辑都没有正确的终止条件,要么条件永远不满足,要么没有有效的判断页面加载成功的逻辑。

正确的实现方式

要确保页面加载成功后停止循环,可以通过检查页面核心元素是否存在(比如Google搜索框)来确认页面加载完成,示例代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException
import time

with webdriver.Chrome() as driver:
    target_url = 'https://www.google.com/'
    driver.get(target_url)
    
    while True:
        try:
            # 检查Google搜索框是否存在,确认页面加载成功
            driver.find_element(By.NAME, 'q')
            print('页面加载完成')
            break
        except NoSuchElementException:
            # 元素不存在,说明未加载完成,等待1秒后刷新
            print('页面未加载完成,尝试刷新')
            time.sleep(1)
            driver.refresh()

这段代码的逻辑:

  • 先导航到目标URL
  • 循环检查页面核心元素(搜索框),如果找到就终止循环
  • 如果没找到,等待1秒后刷新页面,继续检查

额外注意事项

  • 不要用driver.get()的返回值作为判断条件,它只负责导航,不返回加载状态
  • 循环必须设置明确的终止条件,避免无限循环
  • 使用with语句管理driver可以自动关闭浏览器,避免资源泄漏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:50:34