尝试使用类引用变量

时间:2019-01-10 00:06:15

标签: python jython

尝试创建具有以下引用的类时出现错误“模块对象不可调用”:将LoginPage导入为loginPage。 但是,当我尝试仅导入类本身时,将LoginPage.LoginPage导入为loginPage时,我收到另一个错误,指出模块不包含该对象。

我不确定这是否是我通过带括号的引用创建对象的方式。还有另一种方法吗?我也尝试过pageClassRef.LoginPage(),相同的错误“模块”不可调用

import ....
import inspect
import LoginPage as loginPage

#Singleton class type
class Singleton(type):

    def __init__(cls, name, bases, dic):
        super(Singleton, cls).__init__(name, bases, dic)
        cls.instance = None

    def __call__(cls, *args, **kwargs):
         if cls.instance is None:
            cls.instance = super(Singleton, cls).__call__(*args, **kwargs)
        return cls.instance

class NavTestSession(object):

    # Config properties
    __metaclass__ = Singleton

    def __init__(self, configManager):
        self.cfgManager = configManager


        self.navTestEngine = NavTestEngine.Navigator(navVersion, resolution, scoreList)


    def getConfigManager(self):
        return self.cfgManager

    def startNavigating(self):
        return self.createPageObject(loginPage)


def createPageObject(self, pageClassRef):
    # Create page factory method and validation

    newPageObj = pageClassRef()
    #print(newPageObj)
    newPageObj.validatePage()

    return newPageObj

def startNewSession(self):
    loginPage = self.navTestEngine.launchAppFromMenu()

    return loginPage

LoginPage.py

import NavPageObject

class LoginPage(NavPageObject):

    # Image to validate the current page
    PAGE_VALIDATION_IMAGE = "Views_SIGNIN.png"

    # Images of objects on the current page

    USERNAME_INPUT_FIELD_1 = "Input_USERNAME_1.png"

    USERNAME_INPUT_FIELD_2 = "Input_USERNAME_2.png"

    PASSWORD_INPUT_FIELD = "Input_PASSWORD.png"

    def __init__(self):
        super(LoginPage, self).__init__()

    def validatePage(self):
        if not self.navTestEngine.imageExists(self.PAGE_VALIDATION_IMAGE, 
super().getCurrentRegion()):
            raise FindFailed("Page Validation fail at %s" % __file__)

    def typeUsername(self, username):
        self.navTestEngine.clickWithRetry(USERNAME_INPUT_FIELD_1)

        type("blahblah")

        return self

    def typePassword(self, password):
        return self

    def clickLogin(self):
        return self

1 个答案:

答案 0 :(得分:0)

我认为问题在于您尝试将LoginPage导入为loginPage。 为什么不输入“从LoginPage导入LoginPage作为日志页面”