Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;IOError:[Errno 35]资源暂时不可用”;使用PhantomJS、python、selenium和unittest_Python_Macos_Selenium_Phantomjs_Python Unittest - Fatal编程技术网

&引用;IOError:[Errno 35]资源暂时不可用”;使用PhantomJS、python、selenium和unittest

&引用;IOError:[Errno 35]资源暂时不可用”;使用PhantomJS、python、selenium和unittest,python,macos,selenium,phantomjs,python-unittest,Python,Macos,Selenium,Phantomjs,Python Unittest,我在使用selenium和PhantomJS驱动程序运行单元测试时遇到了问题。这似乎与PhantomJS进程中stderr/stdout的资源争用有关。错误是: $ python -m unittest selenium_failure.SeleniumTestCase [] [{u'timestamp': 1395857498698, u'message': u'{"log":{"version":"1.2","creator":{"name":"PhantomJS","version":"1

我在使用
selenium
和PhantomJS驱动程序运行单元测试时遇到了问题。这似乎与PhantomJS进程中stderr/stdout的资源争用有关。错误是:

$ python -m unittest selenium_failure.SeleniumTestCase [] [{u'timestamp': 1395857498698, u'message': u'{"log":{"version":"1.2","creator":{"name":"PhantomJS","version":"1.9.7"},"pages":[{"startedDateTime":"2014-03-26T18:11:38.347Z","id":"https://www.google.com/","title":"Google","pageTimings":{"onLoad":294}}],"entries":[{"startedDateTime":"2014-03-26T18:11:38.344Z","time":127,"request":{"method":"GET","url":"https://www.google.com/","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"User-Agent","value":"Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.7 Safari/534.34"},{"name":"Accept","value":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}],"queryString":[],"headersSize":-1,"bodySize":-1},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Date","value":"Wed, 26 Mar 2014 18:11:37 GMT"},{"name":"Expires","value":"-1"},{"name":"Cache-Control","value":"private, max-age=0"},{"name":"Content-Type","value":"text/html; charset=UTF-8"},{"name":"Set-Cookie",E ====================================================================== ERROR: test_that_something_fails (selenium_failure.SeleniumTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "selenium_failure.py", line 16, in test_that_something_fails print repr(self.selenium.get_log('har')) IOError: [Errno 35] Resource temporarily unavailable ---------------------------------------------------------------------- Ran 1 test in 2.398s FAILED (errors=1) 这个错误在OSX上可以重现,但在Ubuntu12.04上不能重现。我相信这并不是OSX特有的,因为我在Ubuntu上运行的集成测试中也看到了类似的错误,尽管我还没有能够以单独的形式重现它

  • Python 2.7.6
  • 硒==2.35.0
  • phantomjs@1.9.7

已修复!一位同事向我指出了这个相关的问题:我修改了那里的补丁,使
sys.\uu stderr\uuuuuuu
sys.\uu stdout\uuuu
具有块标志。在phantomjs
WebDriver
实例化之后立即调用该函数,可以将stderr发送到stderr

import unittest
import logging
from selenium.webdriver import phantomjs
import sys

class SeleniumTestCase(unittest.TestCase):
    def setUp(self):
        self.selenium = phantomjs.webdriver.WebDriver()
    def tearDown(self):
        self.selenium.quit()
    def test_that_something_fails(self):
        self.selenium.get('https://www.google.com')
        print repr(self.selenium.get_log('browser'))
        print repr(self.selenium.get_log('har'))
        raise AssertionError()