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的正确姿势

阅读 4k
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

亲测有效!!!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题