python unittests 定义一个全局 webdriver 变量
python unittests define a global webdriver variable
我会为 webdriver 浏览器进行全局设置。
所以,我为所有单元测试写了一个单独的 class "Settings",我在其中使用 vars:
class Settings:
driver = webdriver.Firefox()
#driver = webdriver.Chrome(r"C:\Users\...\chromedriver.exe")
在我的单元测试中(都具有相同的结构)我这样调用驱动程序:
def setUp(self):
self.driver = Settings.driver
def test_WebDriverAuthTestIn(self):
driver = self.driver
driver.get(lk_url)
def test_name(self):
some test_logic in browser
def tearDown(self):
self.driver.close()
if __name__ == '__main__':
unittest.main()
然而,其他测试在第一次成功的单元测试后失败 运行。浏览器不会为下一个测试打开 (winerror-10061)。
似乎其他测试也无法 运行 驱动
如果我为每个测试都写,效果很好
driver = webdriver.Firefox()
而不是
self.driver = Settings.driver
定义全局 webdriver 变量通常不是最佳做法,并且您的代码无法正常工作,因为每次测试后,驱动程序都会关闭。驱动程序关闭后无法重新打开,因此下一次测试需要一个新实例。
class Settings:
def getDriver():
return webdriver.Firefox()
和
def setUp(self):
self.driver = Settings.getDriver()
def test_WebDriverAuthTestIn(self):
driver = self.driver
driver.get(lk_url)
def test_name(self):
some test_logic in browser
def tearDown(self):
self.driver.close()
if __name__ == '__main__':
unittest.main()
我会为 webdriver 浏览器进行全局设置。 所以,我为所有单元测试写了一个单独的 class "Settings",我在其中使用 vars:
class Settings:
driver = webdriver.Firefox()
#driver = webdriver.Chrome(r"C:\Users\...\chromedriver.exe")
在我的单元测试中(都具有相同的结构)我这样调用驱动程序:
def setUp(self):
self.driver = Settings.driver
def test_WebDriverAuthTestIn(self):
driver = self.driver
driver.get(lk_url)
def test_name(self):
some test_logic in browser
def tearDown(self):
self.driver.close()
if __name__ == '__main__':
unittest.main()
然而,其他测试在第一次成功的单元测试后失败 运行。浏览器不会为下一个测试打开 (winerror-10061)。 似乎其他测试也无法 运行 驱动
如果我为每个测试都写,效果很好
driver = webdriver.Firefox()
而不是
self.driver = Settings.driver
定义全局 webdriver 变量通常不是最佳做法,并且您的代码无法正常工作,因为每次测试后,驱动程序都会关闭。驱动程序关闭后无法重新打开,因此下一次测试需要一个新实例。
class Settings:
def getDriver():
return webdriver.Firefox()
和
def setUp(self):
self.driver = Settings.getDriver()
def test_WebDriverAuthTestIn(self):
driver = self.driver
driver.get(lk_url)
def test_name(self):
some test_logic in browser
def tearDown(self):
self.driver.close()
if __name__ == '__main__':
unittest.main()