我正在使用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
有人可以帮助我理解为什么打开两个浏览器窗口以及我可以采取哪些措施来解决这个问题?
提前谢谢。
答案 0 :(得分:2)
这是因为您的基础TestCase
课程也被鼻子测试跑步者识别为测试。
用@nottest
装饰者标记:
from selenium import webdriver
from config_parser import Config
from nose.tools import nottest
@nottest
class TestCase(object):
...