我在使用Selenium Python绑定的测试代码中遇到此错误:
> twitter_campaigns = wait.until(EC.visibility_of_element_located(By.CSS_SELECTOR, TWITTER_CAMPAIGNS))
E TypeError: __init__() takes exactly 2 arguments (3 given)
这就是我正在执行的操作:
class TestTwitter(TestLogin, TestBuying):
def setup(self, timeout=10):
self.driver = webdriver.Firefox()
self.driver.get(BASEURL)
self.driver.implicitly_wait(timeout)
def test_campaigns_loaded(self, timeout=10):
self.signin_action()
self.view_twitter_dashboard()
self.select_brand()
wait = WebDriverWait(self.driver, timeout)
twitter_campaigns = wait.until(EC.visibility_of_element_located(By.CSS_SELECTOR, TWITTER_CAMPAIGNS))
assert True == twitter_campaigns
def teardown(self):
self.driver.close()
所以我想知道为什么我在所有类上都没有定义__init__()
方法,而是在pytest之后定义了setUp和tearDown方法,从而导致上述错误。任何想法为什么要采取3args?
您应该问的问题 不是 “为什么要占用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)
元组。
问题内容: 我在使用Selenium Python绑定的测试代码中遇到此错误: 这就是我正在执行的操作: 所以我想知道为什么我在所有类上都没有定义方法,而是在pytest之后定义了setUp和tearDown方法,从而导致上述错误。任何想法为什么要采取3 args? 问题答案: 您应该问的问题 不是 “为什么要占用3个参数”,而是“ 什么 要占用3个参数”。您的回溯是指代码中非常特定的一行,而这正
问题内容: 我正在使用python从另一个文件的另一类的方法中调用一个文件中的一个类中的方法 假设我的文件包含 另一个文件是 当我运行此文件时,出现错误: 问题答案: 如果在类中,则您的方法应为: 您可以在此处阅读有关其原因的信息。
函数insert接受对链表中第一个节点的引用、新值和位置,并在列表中的给定位置插入具有给定值的新节点。 函数pop to引用链表中的第一个节点和一个位置,并删除链表中该位置的节点。 函数stringify_linked_list引用链表的第一个节点并返回链表中所有节点的可打印字符串。 到目前为止,我的代码如下。如果你对我如何修复它有任何想法,请让我知道。谢谢!
问题内容: 的所有文档似乎都表明这是一段有效的代码-不明白吗? 问题答案: 文件说两个参数:。 第一个是mysqli实例的链接,第二个是要转义的字符串。
问题内容: 我试图让我的头围绕mysql。谁能告诉我为什么这个MySQL查询无法正常工作?我收到以下错误: 警告:mysqli_error()期望恰好有1个参数,第11行的/home/freebet2/public_html/test.php中给出的参数为0 test.php db.php 如果我将alter string更改为:之类的原因,我不会收到任何错误。 问题答案: 就sql错误而言,“用