ResourceWarning unclosed的警告解决办法
前言
通过selenium server执行自动化测试时,不断提示未关闭资源的警告,网上很多方法都是使用warnings库屏蔽掉告警,下面介绍个简单有效的解决办法。
一、HTTP keep-alive
selenium webdriver中有一个构造参数叫keep-alive,默认值为false,这个参数是用来以http长连接的方式来设置remote_connection.RemoteConnection。
以下是源码及参数说明
def __init__(self, command_executor='http://127.0.0.1:4444/wd/hub',
desired_capabilities=None, browser_profile=None, proxy=None,
keep_alive=False, file_detector=None, options=None):
- keep_alive - Whether to configure remote_connection to use
HTTP keep-alive. Defaults to False.
二、解决办法
将keep-alive置为True,便不再出现告警信息
代码如下(示例):
from selenium.webdriver import Remote
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
def browser():
selenium_grid_url = "127.0.0.1:4444/wd/hub"
capabilities = DesiredCapabilities.FIREFOX.copy()
capabilities['acceptInsecureCerts'] = True
driver = Remote(command_executor = selenium_grid_url ,
desired_capabilities = capabilities,
keep_alive = True)
return driver
总结
遇到问题除了网上搜索,查看源码也是一个解决问题的途径,还能学习到很多编程思想。
希望以上内容能帮助到有需要的朋友。