2017-04-02 97 views
6

通常我越来越没有这样的会话错误,当我从詹金斯运行脚本没有这样的会话错误。这是什么原因?是否有任何连接失败或是由于其他原因(我正在运行大约26个脚本,并且至少有一个脚本没有此类会话错误)硒ChromeDriver

脚本是不同的脚本,并且不会再次重复这种会话错误对于相同的脚本

+0

你能用更多的信息来完成你的问题吗?你使用什么浏览器和Selenium版本?你在对抗Selenium Grid吗?如果是这样,你已经设置了多少个节点? – Tom

+0

我使用Chrome和ChromeDriver与最新版本的硒,但仍然问题存在 – Shan

+0

您可以检查经过长时间的讨论[在铬(https://bugs.chromium.org/p/chromedriver/issues/detail?id = 732)。我也很头痛。我将Selenium3与Docker镜像配合使用,无法为其提供稳定的行为。 – Tom

回答

4

我有时会遇到这种情况。我使用ChromeDriver和Laravel Dusk,而不是Selenium。不过,我相信原因是ChromeDriver,没有硒

ChromeDriver将创建文件夹一些缓存文件:C:\Users\(yourAccountName)\AppData\Local\Temp。在此文件夹中,您将看到许多看起来像scoped_dir1234_5678的缓存文件夹。每个文件夹大约占用10MB。如果Jenkins频繁运行ChromeDriver,则ChromeDriver可能会过度填充临时文件夹中的缓存文件。您应该考虑C盘上的30-50GB缓存文件,并充分利用C驱动程序。

当我的C盘空间不足时,ChromeDriver将无法启动,然后返回错误消息“Facebook \ WebDriver \ Exception \ NoSuchDriverException:no such session”。

解决办法:

  1. 到临时文件夹,删除所有ChromeDriver缓存文件夹可以清理C区。
  2. 创建可以删除/清理ChromeDriver的Cache文件夹的脚本。

--UPDATE--

找到另一种情况引起的问题。

如果您在同一个OS上同时运行相同的脚本以在两个不同的实例中启动ChromeDriver,则当一个实例完成并关闭了chromedriver时,另一个chrome浏览器实例也可能会关闭。

比如你打开两个控制台和EXCUTE chromedriver scrpit,或在同一时间,你詹金斯项目启动。

我相信,即使您运行不同的脚本,但需要在同一时间chromedriver。由于Chrome浏览器实例关闭,其中一个脚本将“没有这样的会话”。

解决方案:

  1. 安装在詹金斯
  2. 成立了项目在构建拦截器,其目标项目需要等待,直到它完成构建拦截。

我的情况是使用Laravel黄昏无硒。我不确定当测试通过硒服务器时是否会有所不同。

相关问题