Python selenium POM 自动化开发模式下,怎么样实现测试案例的复用

以面向页面的开发模式,开发一个系统的自动化测试案例;
现有登录login_case, 要开发一个logout_case。
由于logout_case的先决条件是用户已经登录,所以必须要在logout_case的代码中先调用login_case。
请问,代码如何组织比较优雅?

以下是代码:
LoginPage

class Login(Page):
    """
        用户登录
    """

    url = "/honycloud/login.jsp"

    login_username_loc = (By.ID, "idToken1")
    login_password_loc = (By.ID, "idToken2")
    login_button_loc = (By.ID, "loginButton_0")

    def login_username(self, username):
        self.find_element(*self.login_username_loc).send_keys(username)

    def login_password(self, password):
        self.find_element(*self.login_password_loc).send_keys(password)

    def login_button(self):
        self.find_element(*self.login_button_loc).click()

    def user_login(self, username="badusername", password="badpassword"):
        self.open()
        self.login_username(username)
        self.login_password(password)
        self.login_button()
        sleep(1)

login_case


class LoginTest(myunit.MyUnitTest):
    """
    登录
    """

    # test login
    def user_login_verify(self, username="", password=""):
        Login(self.driver).user_login(username, password)

    def test_login(self):
        self.user_login_verify(username="xxxx", password="ffff!")
        page = Login(self.driver)
        title = page.on_title()
        self.assertEqual(title, u'工作台')
阅读 1.8k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进