【问题标题】:Selenium not deleting profiles created under Temp folder on CentOSSelenium 不删除在 CentOS 上的 Temp 文件夹下创建的配置文件
【发布时间】:2017-05-05 22:27:48
【问题描述】:

我在 CentOS 上运行 Selenium 测试已经有一段时间了,最​​近我在测试运行时遇到了很多稳定性问题和崩溃。我继续发现在temp 文件夹下创建的 Selenium 浏览器配置文件从未被删除。我手动删除了所有临时文件,现在系统看起来很稳定。是否可以进行检查来处理此问题并确保在浏览器实例被driver.quit() 终止后删除临时文件?

【问题讨论】:

  • 这个问题你解决了吗。我也面临同样的情况
  • 我已经实施了一个解决方法。请参阅答案部分

标签: java selenium selenium-webdriver centos


【解决方案1】:

您可以在退出驱动程序之前删除所有 cookie。应该这样做。

driver.manage().deleteAllCookies();

这就是您在退出驱动程序之前擦除数据所能做的所有事情。

【讨论】:

  • 这将删除与 webdriver 实例关联的所有 cookie,但是,为该实例创建的配置文件仍然存在。
  • 这就是 Selenium 为擦除数据提供的全部功能。如果这没有帮助,那么我担心 Selenium 中没有什么可以帮助你。
  • 有没有办法我可以在文件变量中获取实例创建的临时文件,然后在 driver.quit 之后创建一个检查以将其删除?我可以检查文件是否存在并删除它?想法?
  • 如果您知道保存 tmp 文件的路径,您确实可以将其存储在文件变量中,然后在退出驱动程序后手动将其删除。
  • 这种方法的问题是我无法删除临时文件夹中的所有文件。当实例 1 存在时,我可能会在 webdriver 上运行一些实例。所以我需要找出由临时文件夹中的 webdriver 实例创建的文件/文件夹
【解决方案2】:

我没有找到永久修复此问题的方法,但这是我为清理浏览器 (chrome) 创建的临时目录而实施的解决方法

#!/bin/bash

#file that has a list of all server IPs that need the temp folder cleaned
server_lists=/etc/server_lists

#command to clean temp with chromium directories created prior to 30 minutes
cmd='echo "Clean temp"; find  /tmp/ -maxdepth 1  -mmin +30 -iname ".org.chromium*" -type d  -exec rm -rf "{}" \; && echo Done'

for ip in $( < $server_lists )
do

   ssh -o StrictHostKeyChecking=no $ip "$cmd" 

done

我每 30 分钟运行一次这个 shell 脚本来检查和清理我的浏览器创建的所有临时目录

【讨论】:

  • 但它会检查该配置文件是否正在使用中吗?就我而言,就像所有用户都将开始执行一样,所以不知道当时使用了多少浏览器以及我需要删除多少配置文件。
  • 我假设您的每个测试用例(单个测试用例)将花费不超过 15-20 分钟(在较高的一侧)。如果您认为您的测试用例会花费更多时间,我建议您将 -mmin 变量从 +30 增加到 +60。这应该会删除从当前时间开始 60 分钟之前创建的所有配置文件。
猜你喜欢
  • 1970-01-01
  • 2017-12-26
  • 2013-10-29
  • 2022-09-29
  • 2011-04-24
  • 2019-12-04
  • 1970-01-01
  • 2019-04-18
  • 1970-01-01
相关资源
最近更新 更多