我正在學習使用Selenium WebDriver和Python編寫自動測試。我在WidgetArea
類中有幾個測試,我想在Firefox的一個實例中運行它們,我知道我需要指定setUp
和tearDown
作爲@classmethod
,但我不知道還應該爲實現該目標而更改哪些內容?代碼可以發現如下:如何用一個Firefox實例,Selenium WebDriver和Python一起運行多個測試?
import unittest
from selenium import webdriver
class WidgetArea(unittest.TestCase):
@classmethod
def setUp(cls):
# create new firefox session
cls.driver = webdriver.Firefox()
cls.driver.implicitly_wait(30)
cls.driver.maximize_window()
# navigate to aplication page
cls.driver.get("http://demoqa.com/")
cls.driver.title
def test_widget_area(self):
elements = self.driver.find_elements_by_xpath("//div[@id='secondary']/aside")
self.assertEqual(4, len(elements))
def test_widget_list(self):
elements = self.driver.find_elements_by_xpath("//ul[@id='menu-widget']/li")
self.assertEqual(7, len(elements))
def test_interaction(self):
elements = self.driver.find_elements_by_xpath("//ul[@id='menu-interactions']/li")
self.assertEqual(5, len(elements))
@classmethod
def tearDown(cls):
cls.driver.quit()
if __name__ == '__main__':
unittest.main
使用'selenium'作爲'unittests'來執行自動化測試並不是強制性的。您可以構建自己的框架並根據需要對其進行調整 – Andersson
謝謝,我是一般的自動測試新手,還有OOP語言中的alos,所以我很喜歡從開始和單元測試接縫的一些東西開始,作爲很好的選擇。我認爲我已經開始編寫我自己的自動框架了,據我所知:) – vertigo448
@Andersson你知道我的問題的答案嗎?我有點困在這堵牆上:/謝謝 – vertigo448