我正在学习使用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