【问题标题】:What is unittest in selenium Python?selenium Python中的unittest是什么?
【发布时间】:2018-09-05 06:45:42
【问题描述】:

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()**

【问题讨论】:

    标签: python selenium selenium-webdriver webdriver python-unittest


    【解决方案1】:

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

    第一行:

     class Iframe(unittest.TestCase):
    

    这是为随后的函数(test_IframetearDown)声明class 用于在object oriented programming 中创建“对象”。将 视为数据/过程的抽象,而 对象 是类的特定实例。

    下一行:

    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

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

    【讨论】:

      【解决方案2】:

      由于您选择使用 Python 的 unittest,以下是相关信息:

      • import unittest:你需要导入所需的unittest模块作为强制措施。
      • class Iframe(unittest.TestCase):: 测试用例类继承自 unittest.TestCase。从 TestCase 类继承是告诉 unittest 模块这是一个测试用例的方法。
      • def setUp(self):: setUp 是初始化的一部分,这个方法将在你要在这个测试用例类中编写的每个测试函数之前被调用。
      • 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():从配置的模块调用测试函数

      注意 A:更多详情请参阅 Using Selenium to write testsWalk through of the example


      注意 B:请参阅 A module's name 了解完整详情。


      为什么是自我

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


      琐事

      The self variable in python explained

      【讨论】:

      • 嗨 Debanjan,为什么我们在这里使用 self?
      • @Aayush 查看我的答案更新,如果您有任何问题,请告诉我。
      • 德班扬,感谢您的解释。您能否为此提供一个示例。这是如何工作的以及为什么有必要?由于我是编程新手。我没有任何语言和 OOP 的先验知识,也无法完全理解书中的内容。
      • 嗨 Debanjan,这个链接pythontips.com/2013/08/07/the-self-variable-in-python-explained 真的很有帮助。你有相同类型的 Unittest 链接吗??
      • @Aayush 浏览Note ANote B中的链接,涵盖了基本的理解。
      猜你喜欢
      • 1970-01-01
      • 2018-07-07
      • 2016-04-16
      • 2020-10-24
      • 1970-01-01
      • 2014-07-03
      • 1970-01-01
      • 2014-04-09
      • 2011-07-12
      相关资源
      最近更新 更多