selenium.common.exceptions.WebDriverException: Message: invalid argument: can't kill an exited proce

	搜索了很多,但在博客中并没有搜索到,所以分享给大家。
	找到的第一处是简书中某位作者给出的见解。
	[添加链接描述](https://www.jianshu.com/p/265c0a5afe20)
	如下是他(她)的回答:

如以下错误:
1.selenium.common.exceptions.WebDriverException: Message: invalid argument: can’t kill an exited process
2.或selenium.common.exceptions.WebDriverException:Message: Process unexpectedly closed with status:
1selenium出现这个错误是因为脚本在root用户下运行导致,若你用的是firefox,firefox geckodriver的log中出现以下错误提示:Running Firefox as root in a regular user’s session is not supported. ($HOME is /root which is owned by www.)
使用chrome也有类似报错;明确原因是Firefox不支持root用户;
解决方案:
1.新建新用户
2.在新用户下运行相应的脚本
3.如果有文件的读写权限问题,请赋予相应的权限
作者:OCeasyLife
链接:https://www.jianshu.com/p/265c0a5afe20
来源:简书

因为自己对Linux操作系统不是那么收悉,以至于搜索了如何新建新用户后的教程后,我还是感觉太麻烦了。
人总不可能被尿憋死,对吧。
我点开geckodriver.log文件(日志文件)后发现:

DISPLAY not set

翻译后的意思就是:你没有设置显示环境啦,所以要报错啦~
大致是这个样子,具体我也记不太清了,嘿嘿。
原因是我们采取的自动化方式目前用的都会弹出游览器,以便我们更直观的看到代码运行情况。但我们没有设置显示环境。
那我们设置下不就好啦,考虑到Linux服务器没什么显示界面,干脆咱就把界面给消除了算了。
于是又如下解决方法:

第一步:安装Xvfb和pyvirtualdisplay

yum install xorg-x11-server-Xvfb
 #这里输入进去后会有y/n还有个什么缩写,你需要输入y(代表同意)会有三次还是两次,一直到窗口弹出完毕
pip install pyvirtualdisplay

第二步:在原代码上做出调整(我这里给全的框架,你们对号入座)

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=0, size=(900, 800))
display.start()	#显示界面的设置

driver =  webdriver.Firefox(executable_path='geckodriver')

driver.close
display.stop
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值