机器人框架,继承多个mixins

时间:2017-07-14 13:08:17

标签: python selenium robotframework mixins pageobjects

我在一个带有机器人框架,页面对象库,selenium2library的项目上工作 我找不到在页面对象上使用多个mixin的方法。
我想在LoginPage中使用两个mixins MainNavigation有效,但HeaderMixin不起作用 我的套件设置是在每次测试时登录,所以我需要在该LoginPage上使用mixins 如何在页面对象上使用多个mixin?

这是我的LoginPage对象:

class LoginPage(MainNavigation, HeaderMixin, PageObject):
    """LoginPage baseclass"""

    PAGE_URL = "/user/login"
    PAGE_TITLE = "Title"

    _locators = {
            "username": 'id=login_email',
            "password": 'id=login_password',
            "button": "id=login"
    }

1 个答案:

答案 0 :(得分:0)

使用多个mixin并不需要做任何特殊的事情 - 只需创建一个包含所需新关键字的python类,并在定义类时包含mixins。

例如,考虑以下两个mixin类:

class MainNavigation():
    def main_nav_keyword(self):
        pass

class HeaderMixin():
    def header_keyword(self):
        pass

您可以在LoginPage课程中使用这些混音:

class LoginPage(MainNavigation, HeaderMixin, PageObject):
    ...

在使用LoginPage的班级中,您现在可以访问导航关键字和标题关键字,就好像它们是页面的一部分一样:

*** Test Cases ***
Example
    go to page  LoginPage
    the current page should be  LoginPage
    main nav keyword
    header keyword