【问题标题】:Robot Framework , inheriting multiple mixinsRobot Framework,继承了多个mixin
【发布时间】:2017-07-14 13:08:17
【问题描述】:

我在一个带有机器人框架、页面对象库、selenium2library 的项目上工作。
我找不到在页面对象上使用多个混合的方法。
我想在 LoginPage 中使用两个 mixin。
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"
    }

【问题讨论】:

标签: python selenium robotframework mixins pageobjects


【解决方案1】:

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

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

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

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

您可以在 LoginPage 类中使用这些 mixin:

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

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

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

【讨论】:

  • 我的第一个页面是 LoginPage,我按照你之前说的尝试过,但它不起作用
  • @KaanSan:“不起作用”是一个无用的短语。您一定会遇到某种错误或意外行为。您需要编辑您的问题以包含错误或意外行为。
猜你喜欢
  • 2015-12-04
  • 2014-10-11
  • 1970-01-01
  • 2013-09-06
  • 2013-08-12
  • 1970-01-01
  • 2010-10-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多