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模型的封装写法:如果是在页面对象模型中复用代码,可以封装一个基础方法,统一处理元组格式的定位器:
后续在页面对象中调用时,直接传入元组格式的locator即可:class BasePage: def __init__(self, driver): self.driver = driver def find_elements(self, locator): # 自动解包元组为两个参数 return self.driver.find_elements(*locator)locator = (By.XPATH, "<My XPATH>") elements = self.find_elements(locator)
内容的提问来源于stack exchange,提问作者Arjun S Raj
相关产品推荐
相关产品推荐

