使用Selenium执行pythonunitest时在0.000s内运行0个测试

2024-03-29 10:41:11 发布

您现在位置:Python中文网/ 问答频道 /正文

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

class loginAvaliador(unittest.TestCase):

def setUp(self):
    self.driver = webdriver.Chrome('/Users/r13/dev/chromedriver')

def login_avaliador(self):
    driver = self.driver
    driver.get("http://d3dyod5mwyu6xk.cloudfront.net/")
    assert "FGV" in driver.title
    cpf = driver.find_element_by_xpath('//input[@placeholder="CPF"]')
    cpf.send_keys("27922797885")
    password = driver.find_element_by_xpath('//input[@placeholder="SENHA"]')
    password.send_keys("enccejaregular")
    login = driver.find_element_by_tag_name('button')
    login.click()
    assert "No results found." not in driver.page_source

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

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

当我尝试运行这个测试脚本时,它返回“在0.000s内运行0个测试”为什么会发生这种情况?我是python新手,正在编写这个测试脚本,以便找不到错误


Tags: infromimportselfbydefdriverselenium
2条回答

对于unittest模块,您需要使用它们内置的断言方法。而不仅仅是写作

assert a not in b

你写的

^{pr2}$

例如。有关所有assert方法的列表,请查看以下内容: https://docs.python.org/2/library/unittest.html#unittest.TestCase

在使用Python的unittest模块和Selenium时,您必须考虑以下几个事实:

  • 你需要处理好凹痕。class和{}的缩进不同。在
  • 在定义@Tests时,将测试命名为以test开头的测试,例如

    def test_login_avaliador(self):
    
  • 始终在tearDown(){}方法中调用driver.quit(),以优雅地关闭并销毁WebDriverWeb Client实例。

  • 以下是您自己的代码,只需稍作修改:

    import unittest
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    class loginAvaliador(unittest.TestCase):
    
        def setUp(self):
            self.driver = webdriver.Chrome(executable_path=r'C:\WebDrivers\chromedriver.exe')
    
        def test_login_avaliador(self):
            driver = self.driver
            driver.get("http://d3dyod5mwyu6xk.cloudfront.net/")
            assert "FGV" in driver.title
            cpf = driver.find_element_by_xpath('//input[@placeholder="CPF"]')
            cpf.send_keys("27922797885")
            password = driver.find_element_by_xpath('//input[@placeholder="SENHA"]')
            password.send_keys("enccejaregular")
            login = driver.find_element_by_tag_name('button')
            login.click()
            assert "No results found." not in driver.page_source
    
        def tearDown(self):
            self.driver.quit()
    
    if __name__ == "__main__":
        unittest.main()
    
  • 执行结果:

    C:\path\to\PyPrograms>python -m unittest 52560471_unittest.py
    
    DevTools listening on ws://127.0.0.1:12022/devtools/browser/078fc4e9-3ca6-4bbb-b318-0b8f04318d32
    .
                                       
    Ran 1 test in 40.796s
    
    OK
    

相关问题 更多 >