Firefox Selenium WebDriverException:已到达错误页
我正在关注Django TDD教程:Firefox Selenium WebDriverException:已到达错误页,firefox,selenium-webdriver,python-3.6,django-1.8,Firefox,Selenium Webdriver,Python 3.6,Django 1.8,我正在关注Django TDD教程: 在启动开发服务器“python manage.py runserver”前后运行“all_users.py”时,出现以下错误: 回溯(最近一次呼叫最后一次): 文件“functional_tests/all_users.py”,第15行,在test_it_worked中 self.browser.get(“”) get中的文件“/Users/samgao/.virtualenvs/tb_test/lib/python3.6/site->packages/s
在启动开发服务器“python manage.py runserver”前后运行“all_users.py”时,出现以下错误: 回溯(最近一次呼叫最后一次): 文件“functional_tests/all_users.py”,第15行,在test_it_worked中 self.browser.get(“”) get中的文件“/Users/samgao/.virtualenvs/tb_test/lib/python3.6/site->packages/selenium/webdriver/remote/webdriver.py”,第264行 self.execute(Command.GET,{'url':url}) 文件“/Users/samgao/.virtualenvs/tb_test/lib/python3.6/site->packages/selenium/webdriver/remote/webdriver.py”,执行中第252行 self.error\u handler.check\u响应(响应) 文件“/Users/samgao/.virtualenvs/tb\u test/lib/python3.6/site->packages/selenium/webdriver/remote/errorhandler.py”,第194行,在check\u响应中 引发异常类(消息、屏幕、堆栈跟踪) selenium.common.exceptions.WebDriverException:消息:到达错误页面:>关于:neterror?e=connectionFailure&u=http%3A//localhost%3A8000/&c=UTF->8&f=regular&d=Firefox%20can%E2%80%99t%20建立%20a%20到%20s>Server%20at%20localhost%3A8000的连接 基本上无法建立到本地主机的连接。
设置和配置与上一链接中的教程相同
我已经为这个问题挣扎了两天,如果您能提供任何帮助,我将非常感谢您。因为这是“服从测试羊”的快照(大约在Django 1.8的时间),可能那里的说明不再相关。我建议重新开始
该问题可能与VirtualEnvrapper(不再需要)有关,也可能与您尝试访问的端口/地址有关。取决于您的Selenium和Firefox版本。我遇到了相同的问题,最终的解决方案是:重新安装
/usr/bin
目录sudo mv geckodriver/usr/bin
sudochmoda+xgeckodriver
的程序来标记它为可执行这可能不是您的情况,但我在运行测试(同一本书,呵呵)时收到了相同的错误消息,而在目标端口上没有任何实际侦听(在我的例子中是8000)。通过手动打开浏览器并转到localhost:8000,确保有东西在侦听请求。在我的情况下-愚蠢的我-我根本没有启动服务器=)我遇到了相同的错误,解决的问题是从localhost更改为127.0.0.1:
- 旧版:
self.browser.get('http://localhost:8000)
- 更好:
self.browser.get('http://127.0.0.1:8000)
python manage.py runserver
python functional_test.py
这要视情况而定 基于我的,在我更改了目标URL后,我可以让浏览器正常加载URL,这意味着原始URL不可用 另一种检查方法:
import requests
html = request.get(url)
打印HTML,如果你得到503,这意味着该网站是可访问的。顺便说一句,它不适合我,它需要www:这对我有用。我激活了virtualenv,django服务器正在运行,但仍然出现了错误。Firefox启动,尝试访问
http://localhost:8000
,失败,因此selenium引发异常。但是当我手动刷新浏览器时,页面会加载。如果我将代码更改为doself.browser.get('http://127.0.0.1:8000”)
,正如您所建议的,页面第一次加载,不会引发异常,测试通过。奇怪的我想知道Chrome而不是Firefox是否也会发生同样的情况?