在另一个类中调用一个类的方法

时间:2012-10-25 12:48:49

标签: python selenium

我正在尝试在另一个test_check_footer_visible文件中拨打.py

origin.py有:

class FooterSection(unittest.TestCase):
    """
    """
    browser  = None
    site_url = None

    def setUp(self):
        self.browser.open(self.site_url)
        self.browser.window_maximize()

        # make footer section
        self._footer = FooterPage(self.browser)

    def test_check_footer_visible(self):
        #press the page down
        self.browser.key_down_native("34")
        self.browser.key_down_native("34")
        self.browser.key_down_native("34")
        print "Page down"
        time.sleep (10)

现在dest.py我需要致电test_check_footer_visible()。我该怎么做?

dest.py具有以下格式:

class TestPageErrorSection(unittest.TestCase):
    """
    """
    browser  = None
    site_url = None

    def setUp(self):
        global SITE_URL, BROWSER

        if not BROWSER:
            BROWSER = self.browser

        if not SITE_URL:
            SITE_URL = self.site_url

        BROWSER.open(SITE_URL)
        BROWSER.window_maximize()
        print 'page not found 404 error'
        self._pageerror_section = ErrorSection(BROWSER)

    def _primary_navigation(self):
        # I want to call test_check_footer_visible here.

我在Call Class Method From Another Class

中尝试了所有内容

1 个答案:

答案 0 :(得分:1)

你不能(没有做一些非常阴暗的事情 - 请参阅@glglgl的评论) - 至少在没有改变你的代码的情况下。您不能这样做的原因是因为test_check_footer_visible将断言传入的第一个元素是类FooterSection的实例(它不是 - 它是TestPageErrorSection的实例) 。您(至少)有一些选项用于重新考虑因素。

1)让TestPageErrorSection继承FooterSection并直接使用该函数(例如self.test_check_footer_visible() 根据类名,这对我来说似乎不是一个很好的选择

2)使test_check_footer_visible()成为常规功能。然后可以从任一类调用它。

3)创建第3个类(例如SectionBase),将test_check_footer_visible放在该类上,让其他2个类继承它。