【问题标题】:Unable to run selenium with python using unittest无法使用 unittest 使用 python 运行 selenium
【发布时间】:2017-08-15 05:48:58
【问题描述】:

使用下面的配置:

macOS Sierra 10.12.4、Python 2.7 版、Selenium 3.5 版

我正在尝试使用 selenium webdriver 和 unittest 模块在 Pycharm 中编写脚本。我的目标是去一个网站找到元素(按钮)并点击按钮。我尝试使用 Firefox 驱动程序和 Chrome 驱动程序。我也尝试在没有 IDE 的情况下运行它,但没有运气。我一直在寻找,但无法开始工作。

这是我的代码:

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


class HomeWorkTeam(unittest.TestCase):


    def setUp(self):
        self.driver = webdriver.Chrome(executable_path=r'/Users/<user>/HomeWork/chromedriver')


    def test_team_search(self):
        driver = self.driver
        driver.get("http://www.python.org/index.html")
        teamelem = driver.find_element_by_id("submit")
        teamelem.send_keys(Keys.ENTER)
        assert "No results found" not in driver.page_source


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

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

当我运行它时,这是输出,但浏览器没有启动。

在 0.000 秒内运行 0 次测试

好的

进程以退出代码 0 结束

【问题讨论】:

    标签: python python-2.7 selenium


    【解决方案1】:

    我假设你在下面运行它

    python -m unittest
    

    如果你的这个测试文件是myunit,那么你需要使用下面来运行它

    $ python -m unittest -v myunit
    
    test_team_search (myunit.HomeWorkTeam) ... ok
    
    ----------------------------------------------------------------------
    Ran 1 test in 6.455s
    
    OK
    

    PS:详情请咨询https://docs.python.org/devguide/runtests.html

    【讨论】:

      【解决方案2】:

      setUpteardown 方法添加@classmethod。此外,删除 if 语句的缩进。缩进与类方法相同。

      @classmethod
      def tearDownClass(cls):
          cls.driver.close()
          cls.driver.quit()
          print('Test completed')
      

      【讨论】:

        猜你喜欢
        • 2017-05-08
        • 1970-01-01
        • 2020-10-07
        • 1970-01-01
        • 2013-11-17
        • 1970-01-01
        • 2021-12-19
        • 1970-01-01
        • 2021-09-20
        相关资源
        最近更新 更多