在同一Firefox实例上连续运行Selenium测试

在同一Firefox实例上连续运行Selenium测试,firefox,testing,selenium,sequential,Firefox,Testing,Selenium,Sequential,我正在尝试为一个有论坛的网站设置一些测试。因此,这些事情中有许多需要依次完成,包括登录、创建和删除线程等 目前,我已经使用Selenium设计了测试用例,并使用webdriver导出到Python 是否可以在所有测试之间仅使用一个webdriver实例,以便可以连续执行这些测试?我对来自Java的python还比较陌生,所以我唯一的想法就是创建一个基类来实例化webdriver,让所有测试子类化该基类,并将webdriver传递给测试。我只想在Java中实现这一点,但我正在强迫自己学习一些Pyt

我正在尝试为一个有论坛的网站设置一些测试。因此,这些事情中有许多需要依次完成,包括登录、创建和删除线程等

目前,我已经使用Selenium设计了测试用例,并使用webdriver导出到Python

是否可以在所有测试之间仅使用一个webdriver实例,以便可以连续执行这些测试?我对来自Java的python还比较陌生,所以我唯一的想法就是创建一个基类来实例化webdriver,让所有测试子类化该基类,并将webdriver传递给测试。我只想在Java中实现这一点,但我正在强迫自己学习一些Python

或者,Selenium中是否有其他功能可以实现这一点


谢谢您的时间。

我通过让我的测试子类化的基类来实现它。该基类将创建一个静态驱动程序,该驱动程序将由setup方法设置一次并返回到以下测试

from selenium import webdriver
import unittest, time, re

class TestBase(unittest.TestCase):

    driver = None
    rand =  str(random.uniform(1,10))
    base_url = "desiredtestURLhere"

    def setUp(self):
         if (TestBase.driver==None):
            TestBase.driver = webdriver.Firefox()
            TestBase.driver.implicitly_wait(30)
         return TestBase.driver
然后我做了两个测试

import unittest, time, re
from testbase import TestBase

class Login(TestBase):

    def test_login(self):
        driver = TestBase.driver
        base_url = TestBase.base_url
        driver.get(base_url)
        # etc
测试2将连续运行

import random
import unittest, time, re
from testbase import TestBase

class CreateThread(TestBase):

    def test_create_thread(self):
        driver = TestBase.driver
        base_url = TestBase.base_url
        rand = TestBase.rand
        driver.get(base_url + "/forum.php")
        # etc
我的testsuite.py我会运行

import unittest, sys
# The following imports are my test cases
import login
import create_thread

def suite():
    tsuite = unittest.TestSuite()
    tsuite.addTest(unittest.makeSuite(login.Login))
    tsuite.addTest(unittest.makeSuite(create_thread.CreateThread))
    return tsuite

if __name__ == "__main__":
    result = unittest.TextTestRunner(verbosity=2).run(suite())
    sys.exit(not result.wasSuccessful())

这是我第一次接触Python,所以如果有任何突出的问题,我希望得到反馈

我通过让我的测试子类化一个基类来实现它。该基类将创建一个静态驱动程序,该驱动程序将由setup方法设置一次并返回到以下测试

from selenium import webdriver
import unittest, time, re

class TestBase(unittest.TestCase):

    driver = None
    rand =  str(random.uniform(1,10))
    base_url = "desiredtestURLhere"

    def setUp(self):
         if (TestBase.driver==None):
            TestBase.driver = webdriver.Firefox()
            TestBase.driver.implicitly_wait(30)
         return TestBase.driver
然后我做了两个测试

import unittest, time, re
from testbase import TestBase

class Login(TestBase):

    def test_login(self):
        driver = TestBase.driver
        base_url = TestBase.base_url
        driver.get(base_url)
        # etc
测试2将连续运行

import random
import unittest, time, re
from testbase import TestBase

class CreateThread(TestBase):

    def test_create_thread(self):
        driver = TestBase.driver
        base_url = TestBase.base_url
        rand = TestBase.rand
        driver.get(base_url + "/forum.php")
        # etc
我的testsuite.py我会运行

import unittest, sys
# The following imports are my test cases
import login
import create_thread

def suite():
    tsuite = unittest.TestSuite()
    tsuite.addTest(unittest.makeSuite(login.Login))
    tsuite.addTest(unittest.makeSuite(create_thread.CreateThread))
    return tsuite

if __name__ == "__main__":
    result = unittest.TextTestRunner(verbosity=2).run(suite())
    sys.exit(not result.wasSuccessful())
这是我第一次接触Python,所以如果有任何突出的问题,我希望得到反馈