【selenium】,* 传递参数的问题: __init__() takes 2 positional arguments but 3 were given
一,在做自动化测试时候,显示等待封装一下定位元素的方法:
def find_element(self, *loc):
try:
WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(*loc))
return self.driver.find_element(*loc)
except Exception as e:
raise e
二、脚本执行提示:
意思就是,传入了三个参数,但是只有两个位置;
*loc 代表的是有三个参数:self,xpath和路径地址
login_password_loc = (By.XPATH, "//input[@type='password']")
*parameter是用来接受任意多个参数并将其放在一个元组中;
所以,函数在调用多个参数时,在列表、元组、集合、字典及其他可迭代对象作为实参,并在前面加 *
如 *(1,2,3)解释器将自动进行解包然后传递给多个单变量参数(参数个数要对应相等)
修改为:
def find_element(self, *loc):
try:
WebDriverWait(self.driver, 20).until(EC.visibility_of_element_located(loc))
return self.driver.find_element(*loc)
except Exception as e:
raise e
解决问题。
版权声明:程序员胖胖胖虎阿 发表于 2022年9月13日 下午4:48。
转载请注明:【selenium】,* 传递参数的问题: __init__() takes 2 positional arguments but 3 were given | 胖虎的工具箱-编程导航
转载请注明:【selenium】,* 传递参数的问题: __init__() takes 2 positional arguments but 3 were given | 胖虎的工具箱-编程导航
相关文章
暂无评论...