selenium PhantomJS 调用driver.quit()时出错

dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap['phantomjs.page.settings.userAgent'] = getRandomUserAgent()
print dcap['phantomjs.page.settings.userAgent']
driver = webdriver.PhantomJS(executable_path=phantomJS_path,     desired_capabilities=dcap)
driver.get(url+str(company.companyId))
driver.quit()

错误日志如下:

Traceback (most recent call last):
  File "crawler/get_detail.py", line 47, in <module>
    get_detail(company)
  File "crawler/get_detail.py", line 30, in get_detail
    driver.quit()
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/phantomjs/webdriver.py", line 76, in quit
    self.service.stop()
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/service.py", line 149, in stop
    self.send_remote_shutdown_command()
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/phantomjs/service.py", line 67, in send_remote_shutdown_command
    os.close(self._cookie_temp_file_handle)
OSError: [Errno 9] Bad file descriptor

求关闭driver的正确姿势

阅读 4.1k
3 个回答

试试这个

import signal

driver = webdriver.PhantomJS(executable_path=phantomJS_path,     desired_capabilities=dcap)
driver.get(url+str(company.companyId))
driver.service.process.send_signal(signal.SIGTERM)
driver.quit()

driver.quit()

新手上路,请多包涵

stackoverflow上面的答案,第二条
这个链接里面写到了最终的使用方法。

driver = webdriver.PhantomJS(self.phantomjs_driver_path, desired_capabilities=dcap, service_args=['--cookies-file=/tmp/cookies.txt'])

初始化driver的时候,关键把service_args=['--cookies-file=/tmp/cookies.txt']加上去,就不会再出现以下错误
OSError: [Errno 9] Bad file descriptor

亲测有效!!!

推荐问题