【问题标题】:How to pass an url as argument through commandline to run selenium python test cases如何通过命令行传递 url 作为参数来运行 selenium python 测试用例
【发布时间】:2018-06-06 09:15:47
【问题描述】:

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

我在 cmd 中运行下面的命令来运行 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])

【问题讨论】:

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


【解决方案1】:

根据Python unittest passing arguments 的讨论,Python 专家 似乎传达了这一点:

单元测试应该是独立的,在 setUp()tearDown() 方法之外没有依赖项。这是为了确保每个测试对另一个测试的副作用和反应最小。传入一个参数会破坏 unittest 的这个属性,从而使它们变得无效。使用 Test Configuration 是最简单的方法,并且更合适,因为 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>
    
  • 命令行快照:

【讨论】:

  • @user3157061 如果此/任何答案对您未来的读者有帮助,请为答案投票。
猜你喜欢
  • 1970-01-01
  • 2020-05-29
  • 2014-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-16
  • 2017-02-07
相关资源
最近更新 更多