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

Selenium调用find_element()抛出InvalidArgumentException异常求助

问题解决:Selenium find_element() 抛出 InvalidArgumentException

问题原因

你调用find_element()时传入了双层括号,导致参数格式错误。find_element()接受两个独立参数(定位策略和定位符),或者一个包含这两个元素的元组,但你额外多套了一层括号,让函数接收到的参数结构不符合要求,从而触发该异常。

修复代码

只需去掉find_element()的双层括号即可,两种正确写法任选其一:

写法1:传入两个独立参数

mail = bot.find_element(By.XPATH, "/html/body/div[1]/div[2]/div/div[2]/div[1]/div/div[2]/div/form/form/div[3]/div[1]/div/div/input")

写法2:传入单一层元组(与你WebDriverWait部分的正确写法一致)

mail = bot.find_element((By.XPATH, "/html/body/div[1]/div[2]/div/div[2]/div[1]/div/div[2]/div/form/form/div[3]/div[1]/div/div/input"))

额外优化建议

  • 绝对XPATH依赖页面固定结构,页面稍有改动就会失效,优先使用相对XPATH、id、name或css_selector等更稳定的定位方式。
  • 可以将重复的定位符存为变量,避免冗余代码:
email_locator = (By.XPATH, "/html/body/div[1]/div[2]/div/div[2]/div[1]/div/div[2]/div/form/form/div[3]/div[1]/div/div/input")
try:
    WebDriverWait(bot, delay).until(EC.presence_of_element_located(email_locator))
except TimeoutException:
    print("Loading took too much time!")

mail = bot.find_element(*email_locator)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:10:32