无法使用 unittest 使用 python 运行 selenium

Posted

技术标签:

【中文标题】无法使用 unittest 使用 python 运行 selenium【英文标题】:Unable to run selenium with python using unittest 【发布时间】: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 结束

【问题讨论】:

【参考方案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')

【讨论】:

以上是关于无法使用 unittest 使用 python 运行 selenium的主要内容,如果未能解决你的问题,请参考以下文章

python接口自动化测试 - unittest框架suiterunner详细使用

Python+Selenium笔记:使用unittest

Python基础篇:单元测试unittest

Python基础篇:单元测试unittest

Python基础篇:单元测试unittest

Python unittest 无法解析导入语句