PyCharm无法连接到GhostDriver[英] PyCharm unable to connect to GhostDriver

问题描述

我有一个单元测试,当我通过 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
  • 如果手动指定端口,则在 PyCharm 中通过测试
  • 如果 port=free_port()
  • 在 PyCharm 中测试失败

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 

推荐答案

终端设置中的某些内容可能会影响网络.

尝试从终端启动 PyCharm:

open -a /Applications/PyCharm.app/

然后再次运行测试,应该可以通过了.

<小时>

来源:@CrazyCoder 评论的总结

本文地址:https://www.itbaoku.cn/post/1739947.html