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

Python Selenium传入定位器变量至find_elements方法报错问题

解决Selenium-Python中find_elements传参报错问题

你遇到的错误是因为driver.find_elements()方法需要接收两个独立参数:第一个是定位方式(如By.XPATH),第二个是定位表达式字符串。而直接传入元组locator时,相当于只给方法传了一个参数,导致Selenium无法识别定位方式,触发invalid argument: 'using' must be a string错误。

修复方案

  • 直接修改调用方式:使用Python的解包操作符*,把元组拆成两个独立参数传入:
    locator = (By.XPATH, "<My XPATH>")
    elements = driver.find_elements(*locator)
    
  • 适配POM模型的封装写法:如果是在页面对象模型中复用代码,可以封装一个基础方法,统一处理元组格式的定位器:
    class BasePage:
        def __init__(self, driver):
            self.driver = driver
    
        def find_elements(self, locator):
            # 自动解包元组为两个参数
            return self.driver.find_elements(*locator)
    
    后续在页面对象中调用时,直接传入元组格式的locator即可:
    locator = (By.XPATH, "<My XPATH>")
    elements = self.find_elements(locator)
    

内容的提问来源于stack exchange,提问作者Arjun S Raj

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:35:17