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_登录按钮) 如何返回一个登录后的页面
时间: 2024-02-12 21:02:38 浏览: 21
你可以在 `test01_login_method` 方法中添加代码来获取登录后的页面,比如:
```python
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_登录按钮)
# 获取登录后的页面
home_page = HomePage(self.driver)
return home_page
```
假设 `HomePage` 是你登录后的页面类,`self.driver` 是 `BasePage` 类中的浏览器驱动对象,这样就可以通过实例化 `HomePage` 类来返回登录后的页面。
相关问题
class Test_Login_method(BasePage): def test01_login_method(self,user,passwd): self.get(URL_02.value) self.send_keys(LoginResources.LOC_账号,user) self.send_keys(LoginResources.LOC_密码,passwd) self.click(LoginResources.LOC_管理员) self.submit(LoginResources.LOC_密码) res=self.get_text(LoginResources.LOC_登录结果) return res def test01_login(self,driver,arg): page = Test_Login_method(driver) > res= Test_Login_method.test01_login_method(arg[0],arg[1]) E TypeError: test01_login_method() missing 1 required positional argument: 'passwd'
根据您提供的代码,我发现问题出在 `test01_login_method()` 方法上。您定义的方法没有使用 `self` 参数,而是直接使用了 `driver` 参数。因此,在调用该方法时,需要将 `driver` 参数传递给方法。
修改方法定义,添加 `self` 参数,如下所示:
```python
class Test_Login_method(BasePage):
def test01_login_method(self, user, passwd):
self.get(URL_02.value)
self.send_keys(LoginResources.LOC_账号, user)
self.send_keys(LoginResources.LOC_密码, passwd)
self.click(LoginResources.LOC_管理员)
self.submit(LoginResources.LOC_密码)
res = self.get_text(LoginResources.LOC_登录结果)
return res
```
然后,在调用该方法时,需要先实例化对象,然后再调用方法。例如:
```python
class Test_Login_method(BasePage):
def test01_login(self, driver, arg):
page = Test_Login_method(driver)
res = page.test01_login_method(arg[0], arg[1])
assert res == arg[2]
self.assertTrue(res)
```
这样就可以正确地调用 `test01_login_method()` 方法了。
> self.get(URL_02.value) E AttributeError: 'str' object has no attribute 'value'
根据您提供的错误信息,是因为 `URL_02` 是一个字符串类型的变量,没有 `value` 属性,导致了该错误的出现。
您可以将 `URL_02` 的定义修改如下:
```python
class URL(Enum):
URL_01 = "https://www.example.com/"
URL_02 = "https://www.example.com/login"
```
或者在使用 `URL_02` 时,直接使用字符串类型的值,如下所示:
```python
class Test_Login_method(BasePage):
def test01_login_method(self, user, passwd):
self.get("https://www.example.com/login")
self.send_keys(LoginResources.LOC_账号, user)
self.send_keys(LoginResources.LOC_密码, passwd)
self.click(LoginResources.LOC_管理员)
self.submit(LoginResources.LOC_密码)
res = self.get_text(LoginResources.LOC_登录结果)
return res
```
这样就可以避免 `AttributeError: 'str' object has no attribute 'value'` 的错误了。