如何通过命令行传递url作为参数来运行selenium python测试用例

时间:2018-06-06 09:15:48

标签: python python-3.x selenium selenium-chromedriver python-unittest

是否有任何正确的方法可以在cmd中使用获取url作为testcases.py文件中的参数?

我在cmd下面的commmand下运行以运行python文件的测试用例:    testcases.py"任何网址"

testcases.py有编码:

class JSAlertCheck(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome("E:\chromedriver.exe")
        self.url = sys.argv[1]

    def test_Case1(self):
        driver = self.driver

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

if __name__ == "__main__":
    unittest.main(sys.argv[1])

1 个答案:

答案 0 :(得分:0)

根据讨论Python unittest passing arguments Python Pundits 似乎传达了这一点:

  

单元测试应该是独立的,它们在setUp()tearDown()方法之外没有依赖性。这是为了确保每个测试都具有最小的副作用和对其他测试的反应。传入参数会使 unittest 的此属性失效,从而使它们无效。使用测试配置是最简单的方法,因为 unittest 绝不应该依赖外国数据来执行测试。

如果你仍然想这样做,这是一个有效的解决方案:

  • 代码块:

    from selenium import webdriver
    import unittest
    import sys
    
    
    class MyTest(unittest.TestCase):
    
        URL = "foo"
    
        def setUp(self):
            self.driver = webdriver.Chrome(executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
            driver = self.driver
            driver.get(self.URL)
    
        def test_Case1(self):
            driver = self.driver
            print(driver.title)
    
        def tearDown(self):
            self.driver.quit()
    
    if __name__ == "__main__":
        if len(sys.argv) > 1:
            MyTest.URL = sys.argv.pop()
        unittest.main()
    
  • CLI命令:

    python unittest_cmdline_urlASarguments.py http://www.python.org
    
  • 输出:

    C:\Users\AtechM_03\LearnAutmation\PythonProject\readthedocs>python unittest_cmdline_urlASarguments.py http://www.python.org
    [4448:5632:0606/205445.017:ERROR:install_util.cc(589)] Unable to create registry key HKLM\SOFTWARE\Policies\Google\Chrome for reading result=2
    
    DevTools listening on ws://127.0.0.1:5634/devtools/browser/40cc6c16-1e52-4f49-a54f-08fac3ff7abc
    Welcome to Python.org
    .
    ----------------------------------------------------------------------
    Ran 1 test in 9.534s
    
    OK
    
    C:\Users\AtechM_03\LearnAutmation\PythonProject\readthedocs>
    
  • 命令行快照:

unittest_cli_url