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

使用Python和Selenium处理随机出现的ForeSee弹窗

嘿,我来帮你搞定这个烦人的ForeSee调查弹窗问题!作为经常踩Selenium各种弹窗坑的人,结合你提到的官方文档信息,给你两个实用方案:

方案1:提前添加阻止弹窗的Cookie(一劳永逸)

既然官方说这个fsr.r...类型的Cookie能90天内阻止弹窗,那我们直接在Selenium会话里提前加上它就行,从根源上避免弹窗出现。

步骤很简单:

  1. 先访问目标网站(Cookie必须绑定对应域名,所以得先打开网站)
  2. 添加指定Cookie,设置好过期时间(90天后)
  3. 刷新页面让Cookie生效

示例代码:

from selenium import webdriver
from datetime import datetime, timedelta

# 初始化浏览器驱动
driver = webdriver.Chrome()
# 先访问目标网站,确保Cookie的域名匹配
target_url = "你的目标网站URL"
driver.get(target_url)

# 计算90天后的时间戳(Cookie过期时间需要用Unix时间戳)
expiry_timestamp = (datetime.now() + timedelta(days=90)).timestamp()

# 添加阻止ForeSee弹窗的Cookie
# 注意:把下面的name和domain替换成实际值!
driver.add_cookie({
    "name": "fsr.rn",  # 实际Cookie名称需要你自己抓包确认,比如fsr.surveyInvite之类的
    "value": "1",
    "domain": ".example.com",  # 替换成目标网站的根域名,比如淘宝就是.taobao.com
    "expiry": expiry_timestamp,
    "path": "/"
})

# 刷新页面,让Cookie生效
driver.refresh()

# 接下来就可以放心执行你的购物车操作代码了...

关键注意点:

  • Cookie名称确认:打开浏览器F12→Application→Cookies,当弹窗出现时,看新增的Cookie条目,那个就是你要的name值
  • 域名要正确:domain必须是目标网站的根域名(前面加个点),否则Cookie不会生效
方案2:兜底处理——检测并关闭已出现的弹窗

如果偶尔Cookie没生效(比如第一次访问还没加Cookie时弹窗出来),可以加个兜底函数,定期检查弹窗是否存在,存在就关闭它。

示例代码:

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

def close_foresee_popup(driver):
    try:
        # 等待5秒,直到弹窗的关闭按钮可点击
        # 这里的定位方式需要你根据实际弹窗调整,比如用class、id或者xpath
        close_button = WebDriverWait(driver, 5).until(
            EC.element_to_be_clickable((By.CLASS_NAME, "fsr-close-button"))
        )
        close_button.click()
        print("成功关闭ForeSee调查弹窗")
    except TimeoutException:
        # 没找到弹窗,直接跳过
        pass

# 在你的购物车操作流程中,关键步骤后调用这个函数,比如:
# 选择商品后
close_foresee_popup(driver)
# 点击加入购物车后
close_foresee_popup(driver)
# 结算前
close_foresee_popup(driver)

关键注意点:

  • 定位关闭按钮:你需要自己查看弹窗的HTML结构,找到关闭按钮的选择器(比如class、id),替换代码里的定位方式

小建议:优先用方案1,从根源解决问题;方案2作为兜底,防止意外情况。这样就能彻底避免弹窗打断你的代码啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:31:24