您应该问的问题 “为什么要占用3个参数”,而是“ 要占用3个参数”。您的回溯是指代码中非常特定的一行,而这正是问题所在。
根据此处的Selenium Python文档,selenium.webdriver.support.expected_conditions.visibility_of_element_located
应该使用一个元组来调用;它不是一个函数,但实际上是一个类,其初始化程序 只要求隐式参数之外的1个参数self
:
class visibility_of_element_located(object):
# ...
def __init__(self, locator):
# ...
因此,您需要visibility_of_element_located
使用两个嵌套括号来调用:
wait.until(EC.visibility_of_element_located( ( By.CSS_SELECTOR, TWITTER_CAMPAIGNS ) ))
这意味着,而不是3个参数self
,By.CSS_SELECTOR
并且TWITTER_CAMPAIGNS
,在visibility_of_element_located.__init__
将与刚预计2个参数调用:隐式self
和定位:一个(type, expression)
元组。