警告(来自警告模块):ResourceWarning:unclosed <socket.socket object,=“”fd =“404,”family =“2,”type =“1,”proto =“0”>使用selenium </socket.socket >

时间:2014-01-02 14:54:03

标签: python sockets selenium

import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys


class PythonOrgSearch(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Firefox()

    def test_search_in_python_org(self):
        driver = self.driver
        driver.get("http://www.python.org")
        self.assertIn("Python", driver.title)
        elem = driver.find_element_by_name("q")
        elem.send_keys("selenium")
        elem.send_keys(Keys.RETURN)
        self.assertIn("Google", driver.title)

    def tearDown(self):
        self.driver.close()

if __name__=="__main__":
    unittest.main()

大家好,这个警告让我知道出了什么问题

警告(来自警告模块):   文件“C:\ Python33 \ lib \ site-packages \ selenium-2.37.2-py3.3.egg \ selenium \ webdriver \ firefox \ firefox_binary.py”,第95行     而不是utils.is_connectable(self.profile.port): 资源警告:未公开

2 个答案:

答案 0 :(得分:20)

这是一个已知的错误:

http://code.google.com/p/selenium/issues/detail?id=5923

虽然忽略它是安全的。如果你使用的是Python 3,你可以这样做:

unittest.main(warnings='ignore')

Python 3 unittest docs

在Python 2中,您可以使用以下内容:

with warnings.catch_warnings(record=True):
     unittest.main()

参见Python 2 warnings docs

如果你原谅无耻的自我推销,我写的一本小书中有更多关于硒的信息,here

答案 1 :(得分:6)

我用-W标志运行我的测试:

python -W ignore -m unittest my_tests  

python -W ignore -m unittest my_tests.MyIndividualTest     

抑制ResourceWarning但仍允许断言错误报告。


BTW我发现:

if __name__ == '__main__':
    unittest.main(warnings='ignore')  
当要运行每个测试时,

在调用python my_tests.py时有效,但此调用会阻止运行单个测试。

我无法弄清楚如何使用unittest.main(warnings='ignore')而不会遇到错误,我将其归结为递归包含unittest库。

selenium==2.44.0下的Python 3.4.2