无法使用 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】:为setUp
和teardown
方法添加@classmethod
。此外,删除 if 语句的缩进。缩进与类方法相同。
@classmethod
def tearDownClass(cls):
cls.driver.close()
cls.driver.quit()
print('Test completed')
【讨论】:
以上是关于无法使用 unittest 使用 python 运行 selenium的主要内容,如果未能解决你的问题,请参考以下文章