Django、防火墙、Selenium、[Errno 10061] 和 implicitly_wait()
Django, Firewalls, Selenium, [Errno 10061], and implicitly_wait()
所以,我对这个很好奇。
我一直在尝试使用 Django 进行 TDD,并从 Harry J.W 那里得到了锻炼。 Percival的书,如下:
from selenium import webdriver
import unittest
class NewVisitorTest(unittest.TestCase):
def setUp(self):
self.browser = webdriver.Chrome()
def tearDown(self):
self.browser.quit()
def test_can_start_list_and_retrieve_later(self):
self.browser.get('http://localhost:8000')
self.browser.implicitly_wait(3)
self.assertIn('Django', self.browser.title)
看起来很简单。
除了我得到这个失败的测试:
error: [Errno 10061] No connection could be made because the target machine actively refused it
所以我相信我已经安装了某种防火墙(如果您能指导我,我将不胜感激)。然而,最奇怪的是:
如果我 运行 省略了这一行的脚本,但是: self.browser.implicitly_wait(3)
测试奇怪地通过了。
当我测试失败时,Django 会说以下内容:
Not Found: /favicon.ico
[22/Feb/2016 09:34:38] "GET /favicon.ico HTTP/1.1" 404 1940
如果这有任何相关性:
OS 是 Windows 10
IDE 是 PyCharm 社区(所以 Django 在 powershell 中是 运行)
测试框架是 Unittest.py
Chrome 需要与您机器上安装的 Chrome 版本相匹配的特定驱动程序:
self.browser = webdriver.Chrome("/path/to/chromedriver")
下载 chromedrive 并将其从 https://sites.google.com/a/chromium.org/chromedriver/downloads
复制到“/path/to/chromedriver”
注意:对于 Firefox,可以使用 webdriver.Firefox()
所以,我对这个很好奇。
我一直在尝试使用 Django 进行 TDD,并从 Harry J.W 那里得到了锻炼。 Percival的书,如下:
from selenium import webdriver
import unittest
class NewVisitorTest(unittest.TestCase):
def setUp(self):
self.browser = webdriver.Chrome()
def tearDown(self):
self.browser.quit()
def test_can_start_list_and_retrieve_later(self):
self.browser.get('http://localhost:8000')
self.browser.implicitly_wait(3)
self.assertIn('Django', self.browser.title)
看起来很简单。
除了我得到这个失败的测试:
error: [Errno 10061] No connection could be made because the target machine actively refused it
所以我相信我已经安装了某种防火墙(如果您能指导我,我将不胜感激)。然而,最奇怪的是:
如果我 运行 省略了这一行的脚本,但是: self.browser.implicitly_wait(3)
测试奇怪地通过了。
当我测试失败时,Django 会说以下内容:
Not Found: /favicon.ico
[22/Feb/2016 09:34:38] "GET /favicon.ico HTTP/1.1" 404 1940
如果这有任何相关性:
OS 是 Windows 10
IDE 是 PyCharm 社区(所以 Django 在 powershell 中是 运行)
测试框架是 Unittest.py
Chrome 需要与您机器上安装的 Chrome 版本相匹配的特定驱动程序:
self.browser = webdriver.Chrome("/path/to/chromedriver")
下载 chromedrive 并将其从 https://sites.google.com/a/chromium.org/chromedriver/downloads
复制到“/path/to/chromedriver”注意:对于 Firefox,可以使用 webdriver.Firefox()