TypeError: __init__() takes 2 positional arguments but 3 were given

近日在使用selenium+python3.6爬取一个网站时遇到这个问题:

Traceback (most recent call last):
  File "D:/pythoncode/spider/spiderforQA.py", line 17, in <module>
    wait=WebDriverWait(driver,10).until(EC.presence_of_element_located(By.XPATH,'//*[@id="heading0"]/a'))
TypeError: __init__() takes 2 positional arguments but 3 were given

该问题的原因是EC.presence_of_element_located()方法传参的问题,往该方法传参数时需要将参数用“()”括起来使其作为一个整体,而不是单独传入。如下所示:
将:WebDriverWait(driver,10).until(EC.presence_of_element_located(By.XPATH,'//*[@id="heading0"]/a'))
修改为:WebDriverWait(driver,10).until(EC.presence_of_element_located((By.XPATH,'//*[@id="heading0"]/a')))

就OK!

参考:https://stackoverflow.com/questions/39957316/typeerror-init-takes-2-positional-arguments-but-3-were-given

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:10
直接上图
牛客13578115...:改得一般,不值80
点赞 评论 收藏
分享
风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
炫哥_:为什么都读硕士了?项目还是网上的项目(真心发问)
最后再改一次简历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务