在0.000s内运行了0个测试-同时使用Selenium执行Python-unittest

时间:2018-09-28 17:52:26

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

    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.000秒钟内进行了0次测试”,这是为什么呢?我是python的新手,并编写了此测试脚本,所以我找不到错误

2 个答案:

答案 0 :(得分:0)

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

assert a not in b

您写

self.assertNotIn("No results found.",driver.page_source)

例如。有关所有assert方法的列表,请参见此处: https://docs.python.org/2/library/unittest.html#unittest.TestCase

答案 1 :(得分:0)

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

  • 您需要注意缩进。 classtest_method的缩进不同。
  • 在定义@Tests的同时,以 test 开头的测试名称,例如

    def test_login_avaliador(self):
    
  • 始终在driver.quit()方法内调用tearDown(){},以优雅地关闭和销毁 WebDriver Web 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