12
我有一个单元测试,当我通过python manage.py test
运行时传递,但在PyCharm中运行时失败。PyCharm无法连接到GhostDriver
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)
快速回顾一下:如果端口手动指定
port=free_port()
什么是
- 测试与
python manage.py test
- 测试通过在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中的'free_port()'返回什么?你使用什么操作系统? – CrazyCoder
我使用OS X,而free_port()通常返回50000-60000之间的端口。 –
如果从终端启动PyCharm,它有帮助吗:'open -a/Applications/PyCharm.app /'? – CrazyCoder