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

开发Instagram自动登录脚本遇InvalidSelectorException错误求助

解决Instagram Cookie按钮定位的XPATH语法错误问题

你的代码报错核心是XPATH选择器语法无效,原因是匹配按钮文本时混用了非标准引号(´和`),且引号未正确配对,导致XPATH解析失败。

修正后的代码方案

方案1:修正引号格式(严格匹配文本)

把XPATH里的文本用标准双引号/单引号包裹,确保引号配对:

from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By

browser = webdriver.Firefox()
browser.implicitly_wait(5)
browser.get('https://www.instagram.com/')
sleep(2)
# 改用标准双引号包裹文本,外层用单引号
login_link = browser.find_element(By.XPATH, '//button[text()="Allow essential and optional cookies"]')
login_link.click()  # 别忘了添加点击操作

方案2:用contains匹配(更稳定,适配文本细微变化)

Instagram的按钮文本偶尔会有空格、大小写调整,用contains能避免严格匹配失败:

login_link = browser.find_element(By.XPATH, '//button[contains(text(), "Allow essential and optional cookies")]')

进阶优化:替换sleep为显式等待

sleep(2)是固定等待,容易因页面加载慢导致元素找不到,改用Selenium的显式等待更可靠:

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

browser = webdriver.Firefox()
browser.get('https://www.instagram.com/')
# 等待最多10秒,直到按钮可点击
wait = WebDriverWait(browser, 10)
cookie_button = wait.until(EC.element_to_be_clickable((By.XPATH, '//button[contains(text(), "Allow essential and optional cookies")]')))
cookie_button.click()

错误原因说明

你原代码中的XPATH://button[text()=´Allow essential and optional cookies],使用了**左单引号´**和**反引号```` ```**两种非标准引号,XPATH只识别标准单引号'和双引号",且要求字符串两端引号类型一致,因此触发了InvalidSelectorException。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 23:30:49