对点击下拉菜单进行简单测试,看看菜单是否显示。
dropdown_user = self.browser.find_element_by_id('dropdown-user')
dropdown_user.click()
expanded = dropdown_user.get_attribute("aria-expanded")
self.assertTrue= (expanded)
settings = self.browser.find_element_by_id('dropdown-user-settings')
self.assertTrue(settings.is_displayed())
运行测试时给我这个错误。我不知道为什么设置是str。
self.assertTrue(settings.is_displayed())
TypeError: 'str' object is not callable
答案 0 :(得分:2)
我无法发表评论(没有足够的代表)或者我会 - 你能发布整个堆栈跟踪吗? self.assertTrue= (expanded)
行看起来可能会导致问题。
编辑:我认为您将变量expanded
的值分配给self.assertTrue
,然后当您尝试调用self.assertTrue
时,您尝试调用字符串,而不是一个功能。删除行self.assertTrue=(expanded)
并将其替换为self.assertEqual(expanded, 'true')
。
编辑2以按要求更深入地解释:
如果您的下拉列表已展开,则expanded
的值为字符串 - 可能为“true”。
写self.assertTrue=(expanded)
与写self.assertTrue=expanded
是一样的(在本例中)。您将变量expanded
(它是一个字符串)的值赋给变量self.assertEqual
- 它不再是一个函数,它是一个字符串!
self.assertTrue(True) # fine
self.assertTrue=('Woops!') # the value of self.assertTrue is now the
# string 'Whoops!'
print(self.assertTrue)
>'Woops!'
self.assertTrue(True) # you're trying to call a string here
> TypeError: 'str' object is not callable
在python中,没有什么能阻止你为任何变量分配任何类型,因为它是dynamically typed。