Selenium Side Runner执行测试时出现NoSuchSessionError问题求助
解决Selenium Side Runner的NoSuchSessionError问题
我之前也碰到过类似的报错,结合你的环境信息(Mac High Sierra、Node v14.1.0、ChromeDriver v83、最新版selenium-side-runner),给你几个针对性的解决步骤:
1. 确认Chrome浏览器与ChromeDriver版本完全匹配
ChromeDriver和Chrome浏览器的版本必须严格对应,这是最常见的会话丢失原因之一:
- 打开Chrome,通过「右上角三点→帮助→关于Google Chrome」查看你的浏览器版本,比如如果是83.xxx,那ChromeDriver v83是匹配的;如果是其他版本,要么升级/降级Chrome,要么下载对应版本的ChromeDriver替换现有文件。
- 验证ChromeDriver是否正常:直接在终端运行
chromedriver,如果能正常启动并输出日志,说明驱动本身没问题。
2. 调整运行命令的启动参数与超时时间
你的测试超时了300秒,同时headless模式可能存在兼容性问题,试试修改命令:
PATH=/Users/davea/Documents/workspace/article_project/selenium/dev:/usr/local/bin:$PATH /usr/local/bin/selenium-side-runner -c "goog:chromeOptions.args=[--headless,--disable-gpu,--no-sandbox] browserName=chrome" --timeout 600000 selenium/KarmaDecayGetResults.side
- 把
--nogpu换成更通用的--disable-gpu,新增--no-sandbox参数解决Mac headless模式下的权限问题; - 把超时时间从300秒(300000ms)延长到600秒(600000ms),给页面足够的加载时间。
3. 检查.side文件中的URL配置
你的.side文件里基础URL是http://karmadecay.com,但很多网站现在会强制跳转HTTPS:
- 手动访问
http://karmadecay.com/r/gifs/comments/gz5v5j/caracal_visits_jimmy_kimmel_gets_shy_and_tries_to/,看是否会自动跳转到HTTPS地址; - 如果是,把.side文件里的
"url": "http://karmadecay.com"改成"url": "https://karmadecay.com",避免HTTP跳转导致会话失效。
4. 清理并重新安装selenium-side-runner
有时候全局npm包的缓存或安装文件会损坏,试试:
npm uninstall -g selenium-side-runner npm cache clean --force npm install -g selenium-side-runner
5. 确保ChromeDriver有执行权限
如果ChromeDriver所在路径没有执行权限,也会导致会话无法创建:
chmod +x /usr/local/bin/chromedriver
(如果你的ChromeDriver在其他路径,替换成对应的路径即可)
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

