当前位置: 首页 > 知识库问答 >
问题:

setUpClass(cls)功能块未通过Selenium使用python-unittest执行

颛孙昆
2023-03-14
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
import unittest


class GoogleSearch(unittest.TestCase):
    print("123")

    @classmethod
    def setUpClass(cls):
        print("456")
        cls.driver = webdriver.Chrome()
        cls.driver.implicitly_wait(10)
        cls.driver.maximize_window()

    def test_search_automationstepbystep(self):
        self.driver.get("https://google.com")
        self.driver.find_element_by_name("q").send_keys("Automation Step by Step")
        self.driver.find_element_by_name("btnK").send_keys(Keys.ENTER)

    def test_search_kiranmallaiah(self):
        self.driver.get("https://google.com")
        self.driver.find_element_by_name("q").send_keys("Kiran Mallaiah")
        self.driver.find_element_by_name("btnK").send_keys(Keys.ENTER)

    @classmethod
    def tearDownClass(cls):
        cls.time.sleep(3)
        cls.driver.close()
        cls.driver.quit()


print("Test Completed")

以下是输出:

C:\Users\Indrani\PycharmProjects\SeleniumProject\venv\Scripts\python.exe "C:/Users/Indrani/PycharmProjects/SeleniumProject/Sample Projects/GoogleSearchTest.py"
123
Test Completed

Process finished with exit code 0

共有1个答案

姜学海
2023-03-14

在使用python-unittest时,您需要考虑以下几个问题

  • unittest模块广泛用于构造和运行测试用例。
  • 通过对UnitTest.testcase进行子类化来创建testcase。测试是用名称以字母test开头的方法定义的。
  • setUp()和tearDown()方法允许您定义将在每个测试方法之前和之后执行的指令。

但是,您错过了将__name__变量设置为具有一个值并定义要执行哪些测试函数的最重要部分。为了配置这些,您需要添加几行,如下所示:

    null
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
import unittest


class GoogleSearch(unittest.TestCase):
    print("123")

    @classmethod
    def setUpClass(cls):
        print("456")
        cls.driver = webdriver.Chrome(executable_path=r'C:\WebDrivers\chromedriver.exe')
        cls.driver.implicitly_wait(10)
        cls.driver.maximize_window()

    def test_search_automationstepbystep(self):
        self.driver.get("https://google.com")
        self.driver.find_element_by_name("q").send_keys("Automation Step by Step")
        self.driver.find_element_by_name("btnK").send_keys(Keys.ENTER)

    def test_search_kiranmallaiah(self):
        self.driver.get("https://google.com")
        self.driver.find_element_by_name("q").send_keys("Kiran Mallaiah")
        self.driver.find_element_by_name("btnK").send_keys(Keys.ENTER)

    @classmethod
    def tearDownClass(cls):
        cls.time.sleep(3)
        cls.driver.close()
        cls.driver.quit()

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

print("Test Completed")
    null
 类似资料:
  • 我在我的脚本中有以下语句:我存储javascript{window.document.getElementById('demo'). innerHTML}文本 但这总是会出错 [info]执行:|store|javascript{window.document.getElementById('demo'). innerHTML}|text|[error]意外异常:TypeError:window.

  • ======================================================================================================================== 回溯(最近一次调用):文件“E:\learning\workplace\kenzen\kenzen\kenlogin.py”,第37行,在test_home

  • 问题内容: 您能帮我下一个吗?我发现了问题,无法解决。当我使用下一个代码时,浏览器已经启动并且测试通过了: 但是与类和方法相同的消息返回消息:“进程以退出代码0结束”: 如何使用第二种情况(带有方法和类)打开浏览器? 非常感谢您的帮助。 问题答案: 在使用 Selenium 处理Python的 unittest 模块时,您必须考虑以下几个事实: __ 当您传递 密钥时 ,请通过单引号和原始开关提供

  • 问题内容: 我需要为测试设置执行顺序,因为我需要先验证一些数据。可以下订单吗? 谢谢 问题答案: 最好不要这样做。 测试应该是独立的。 要做您最想做的就是将代码放入测试调用的函数中。 像那样: 甚至拆分测试类,并将断言放入setUp函数中。 当我拆分班级时,我经常编写更多更好的测试,因为测试被拆分,并且在应该测试的所有情况下我都能看到更好的结果。

  • 问题内容: 我正在尝试通过selenium上传png。我的问题是,我需要使用的输入对selenium不可见,但对用户不可见。在Selenium的FAQ中,他们告诉我像这样使用JavascriptExcecutor: 过去我在C#中使用了它,并且可以正常工作,但是现在却很难将这种用法转换为python。我会使用该函数,但是输入没有名称,并且页面上有多个。解决该问题的最佳方法是什么。我已经试过了 但这

  • 学习unittest 很好的一个切入点就是从selenium IDE 录制导出脚本。相信不少新手学习selenium 也是从IED 开始的。 IDE学习参考: 菜鸟学自动化测试(一)--selenium IDE 借助IED 录制脚本 将脚本导出,保存为baidu.py ,通过python IDLE编辑器打开。如下: from selenium import webdriverfrom seleni