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-11 11:00
点赞 评论 收藏
分享
程序员小白条:主要没亮点,项目也是网上的,平平无奇,那只能海投了,奖项总得有一些,然后就是现在最好是前后端都会,自己能做项目并且运维的,要么找星球项目改改,要么找个开源项目改改,自己能拓展功能才是主要的,跟做效率很低很低
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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