> assert 'Dashboard - Leon CRM' in res.title E AttributeError: 'NoneType' object has no attribute 'title'
时间: 2023-10-17 12:05:54 浏览: 56
这看起来像是一个测试中的错误,错误信息提示说 'NoneType' 对象没有 'title' 属性。这意味着代码中的某个变量或表达式的实际值为 None,而不是一个具有 title 属性的对象。你需要检查代码中的变量或表达式的值,并确保它们都具有正确的属性。可能需要添加一些条件语句来处理这种情况,以避免出现此错误。
相关问题
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。
阅读全文