> assert 'Dashboard - Leon CRM' in res.title E AttributeError: 'NoneType' object has no attribute 'title'
时间: 2023-10-17 12:05:54 浏览: 75
这个错误通常意味着代码中的某个变量或属性没有被正确地赋值或定义。在这种情况下,'res' 变量的值为 None,因此它没有 'title' 属性,导致在 assert 语句中引发 AttributeError 异常。要解决这个问题,您需要检查代码中与 'res' 变量相关的部分,确保它正确地被赋值或定义,以使其具有 'title' 属性。您还可以考虑添加一些条件语句,以确保 'res' 变量不为 None,以避免出现类似的异常。
相关问题
class Test_Login_method(BasePage): def test01_login_method(self,user,passwd): self.get(LoginResources.URL_leons.value) self.send_keys(LoginResources.LOC_账号,user) self.send_keys(LoginResources.LOC_密码,passwd) self.click(LoginResources.LOC_管理员) self.click(LoginResources.LOC_登录按钮) @pytest.mark.parametrize("arg", user_info) @logs def test01_login(self,driver,arg): page = Test_Login_method(driver) res= page.test01_login_method(arg[0],arg[1]) assert 'Dashboard - Leon CRM' in res.title 报错:> assert 'Dashboard - Leon CRM' in res.title E AttributeError: 'NoneType' object has no attribute 'title',如何修改
出现 `'NoneType' object has no attribute 'title'` 的错误通常是因为 `test01_login_method` 方法没有返回任何值。您需要在 `test01_login_method` 方法中添加返回语句,以返回一个值,以便在 `test01_login` 方法中使用。例如:
```
class Test_Login_method(BasePage):
def test01_login_method(self,user,passwd):
self.get(LoginResources.URL_leons.value)
self.send_keys(LoginResources.LOC_账号,user)
self.send_keys(LoginResources.LOC_密码,passwd)
self.click(LoginResources.LOC_管理员)
self.click(LoginResources.LOC_登录按钮)
return self.driver
@pytest.mark.parametrize("arg", user_info)
@logs
def test01_login(self,driver,arg):
page = Test_Login_method(driver)
res= page.test01_login_method(arg[0],arg[1])
assert 'Dashboard - Leon CRM' in res.title
return res.title
```
这里我们在 `test01_login_method` 方法的最后添加了 `return self.driver` 语句,并在 `test01_login` 方法中使用了 `return res.title` 语句来返回 `res.title` 属性。
> assert 'Dashboard - Leon CRM' in res.title E assert 'Dashboard - Leon CRM' in 'Leon CRM' E + where 'Leon CRM' = <selenium.webdriver.chrome.webdriver.WebDriver (session="499c6b7aba5367f78fdb0bdcf9379362")>.title test01_login.py:31: AssertionError
根据错误信息,我们可以看到断言 `assert 'Dashboard - Leon CRM' in res.title` 失败了。具体来说,它在比较 `'Dashboard - Leon CRM'` 和 `'Leon CRM'` 时出现了错误。这表明页面上的标题并不包含 `'Dashboard - '` 这个前缀,只有 `'Leon CRM'`。因此,要修复这个断言,您需要更新它,使它只检查 `'Leon CRM'` 是否在页面标题中出现。例如:
```
assert 'Leon CRM' in res.title
```
这应该会解决这个 AssertionError。
阅读全文