selenium Python 中的单元测试是什么?

What is unittest in selenium Python?

第3、16、17、18、19行标有*的是什么意思。有人可以解释他们的工作吗?我是 python 和编程新手

import unittest

from selenium import webdriver

**class Iframe(unittest.TestCase):**

def setUp(self):
    self.driver = webdriver.Firefox()

def test_Iframe(self):
    driver = self.driver
    driver.maximize_window()
    driver.get('http://www.toolsqa.com/iframe-practice-page/')

    iframe1 = driver.find_element_by_id('IF1')
    driver.switch_to.frame(iframe1)

    driver.find_element_by_name('email').send_keys('xyz')

    driver.switch_to.default_content()

    list = driver.find_elements_by_tag_name('iframe')

    print(len(list))

**def tearDown(self):
    self.driver.quit()**


**if __name__ == '__main__':
   unittest.main()**

此代码中只有三行用 * 突出显示,但它们的含义如下:

第一行:

 class Iframe(unittest.TestCase):

这是为函数(test_IframetearDown 声明 class ) 随后。一个class is used to create "objects" in object oriented programming。将 class 视为 data/procedures 的抽象,而 object 是 [=48 的特定实例=].

下一行:

def tearDown(self):
self.driver.quit()

本节先用def关键字声明一个函数,该函数退出驱动程序,设置为:

driver = self.driver
driver.maximize_window()
driver.get('http://www.toolsqa.com/iframe-practice-page/')

test_Iframe() 函数中。

最后一行:

if __name__ == '__main__':
unittest.main()

这部分只是执行程序的主要功能。有关这方面的更多详细信息,请参见 here

如果您还有其他问题,请告诉我!

因为您选择使用 Python 的 unittest 这里是相关信息:

  • import unittest:作为强制措施,您需要导入所需的unittest模块。
  • class Iframe(unittest.TestCase)::测试用例class继承自unittest.TestCase。继承自 TestCase class 是告诉 unittest 模块这是一个测试用例的方法。
  • def setUp(self):: setUp 是初始化的一部分,这个方法将在你要在这个测试用例中编写的每个测试函数之前被调用 class.
  • def test_Iframe(self)::这是实际的 testcase 方法。 testcase 方法应始终以字符 test.
  • 开头
  • def tearDown(self):tearDown 方法将在每个测试方法之后调用。这是执行所有清理操作的方法。
  • if __name__ == '__main__'::此行将 __name__ 变量设置为具有值 "__main__"。如果此文件是从另一个模块导入的,则 __name__ 将设置为另一个模块的名称。您将在 What does if name == "main": do?
  • 中找到详细的讨论
  • unittest.main():从配置的模块调用测试函数

Note A: For more details see Using Selenium to write tests and Walk through of the example


Note B: Refer A module's name for complete details.


为什么自己

每个 class 方法(包括 init)的第一个参数始终是对 class 的当前实例的引用。按照惯例,此参数始终命名为 self。在init方法中,self指的是新创建的对象,而在其他class方法中,指的是调用方法的实例。


琐事

The self variable in python explained