我有一个单元测试,当我通过python manage.py test运行它时,它是通过的,但是当我从PyCharm内部运行它时,它失败了。
def test_alpha(self):
from selenium.webdriver.common.utils import free_port
from selenium import webdriver
driver = webdriver.PhantomJS(executable_path=PHANTOMJS_PATH, port=free_port())
driver.quit()从PyCharm运行时,我得到的异常是
WebDriverException: Message: 'Can not connect to GhostDriver' 我花了相当长的时间研究这个问题,并且注意到当我手动指定端口时,测试会在PyCharm中通过。
# suppose 50000 happens to be a free port on your computer
driver = webdriver.PhantomJS(executable_path=PHANTOMJS_PATH, port=50000)快速回顾:
python manage.py test测试合格port=free_port()PyCharm是怎么做的,这使得测试无法连接到Ghostdriver?
# For convenience, the `free_port()` code snippet is here
# selenium.webdriver.common.utils.freeport
def free_port():
free_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
free_socket.bind(('127.0.0.1', 0))
free_socket.listen(5)
port = free_socket.getsockname()[1]
free_socket.close()
return port 发布于 2019-09-03 11:10:46
终端设置中的某些内容可能会影响网络。
尝试从终端启动PyCharm
open -a /Applications/PyCharm.app/然后再运行测试,它应该会通过。
资料来源:@CrazyCoder评论摘要
发布于 2015-04-01 21:18:22
尝试安装带有npm:https://www.npmjs.com/package/phantomjs的幻影。我使用Mac,selenium和django也使用了类似的问题。
https://stackoverflow.com/questions/17827448
复制相似问题