浏览器在使用Selenium / Python / Nose时实例化两次

时间:2014-09-27 09:54:31

标签: python unit-testing selenium selenium-webdriver nose

我正在使用Selenium和python绑定创建一个示例测试并使用nose运行它。我知道我做错了,因为测试会打开两个浏览器(当设置运行时,Firefox窗口会立即打开并关闭,然后当测试运行driver.get时,会打开另一个窗口)。我有以下项目:

/test_project
    /config
        config.ini
    /pages
        __init__.py
        test_page.py
    /test_scripts
        script.py
    __init__.py
    base.py
    config_parser.py

的config.ini:

[Selenium]
browser: firefox
base_url: http://www.google.com/
chromedriver_path:

base.py

from selenium import webdriver
from config_parser import Config


class TestCase(object):

    def setup(self):
        self.config = Config()

        if self.config.read_config('Selenium', 'browser').lower() == 'firefox':
            self.driver = webdriver.Firefox()
        elif self.config.read_config('Selenium', 'browser').lower() == 'chrome':
            self.driver = webdriver.Chrome(self.config.read_config('Selenium', 'chromedriver_path'))

    def teardown(self):
        self.driver.quit()

test_page.py

from config_parser import Config

class TestPage(object):

    def __init__(self, driver):
        self.driver = driver
        self.config = Config()

    def open(self):
        self.driver.get(self.config.read_config('Selenium', 'base_url'))
        import time
        time.sleep(3)

script.py

from pages import test
from base import TestCase


class RandomTest(TestCase):

    def test_foo(self):
        x = test.TestPage(self.driver)
        x.open()
        assert 1 == 1

有人可以帮助我理解为什么打开两个浏览器窗口以及我可以采取哪些措施来解决这个问题?

提前谢谢。

1 个答案:

答案 0 :(得分:2)

这是因为您的基础TestCase课程也被鼻子测试跑步者识别为测试。

@nottest装饰者标记:

from selenium import webdriver
from config_parser import Config
from nose.tools import nottest

@nottest
class TestCase(object):
    ...