环境:Windows selenium 3.141.0 Python 3.8.10 Chrome 90.0.4430.212 ChromeDriver 90.0.4430.24

最近发现执行完Selenium脚本后,在个人的Temp目录下会有大量的临时文件夹。类似下面这样









C:\Users\Administrator\AppData\Local\Temp\chrome_url_fetcher_19412_239410040

C:\Users\Administrator\AppData\Local\Temp\chrome_BITS_16176_1439591952

C:\Users\Administrator\AppData\Local\Temp\scoped_dir7672_2014177749

经过查阅,chrome_url_fetcher和chrome_BITS文件夹下的都在下载某个插件。scoped_dir的则是因为启动webdriver的时候没有指定user data目录,所以在Temp目录下产生了一个临时的配置文件目录。正常来说,当执行完后用driver.quit()应该会退出的,但原先的代码执行时在还没到driver.quit()这一步时就已经失败退出,所以Temp目录下的文件没被删除。

改进:

  1. 使用conftest和yield,将webdriver的初始化,登录和关闭浏览器定义为function级别的fixture

    原代码:
def test_example():
driver = Driver().openBrowser()
login_page = LoginPage(driver)
login_page.login() home_page = HomePage(driver)
home_page.open_inventory() driver.quit()

新代码

conftest.py

@pytest.fixture(scope="function")
def driver():
# 前置
driver = Driver().openBrowser()
login_page = LoginPage(driver)
login_page.login()
print("初始化完成...")
yield driver
# 后置
driver.quit()
print("关闭浏览器...")
def test_example(driver):
home_page = HomePage(driver)
home_page.open_inventory()
  1. 禁止浏览器插件更新 disable-component-update
class Driver:
def openBrowser(self):
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("start-maximized")
chrome_options.add_argument("--disable-component-update")
driver = webdriver.Chrome(options=chrome_options)
return driver

执行Selenium后在temp目录下产生临时文件scoped_dir chrome_BITS的更多相关文章

  1. IDEA编译项目后,target目录下的jsp文件不更新

    tomcat目录说明 先来看一下tomcat的目录: |-bin |-conf |-lib |-logs |-temp |-webapps |-work tomcat 的核心是servlet容器,叫 ...

  2. 在JQuery和Js中,如何让ajax执行完后再继续往下执行 async

    async (默认: true) 默认设置下,所有请求均为异步请求.如果需要发送同步请求,请将此选项设置为 false.注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行. var t ...

  3. 如何让ajax执行完后再继续往下执行

    $.ajax加上参数async: false, false代表同步请求,true代表异步(默认)

  4. 删除 Linux /tmp 目录下的临时文件

    使用 tmpreaper How to install and use tmpreaper How to Remove Files Older than N days using tmpreaper ...

  5. IDEA中读取 resource目录下文件

    1. 资源文件 2. 加载文件 public void test() { try { System.out.println("begin test"); String filepa ...

  6. eclipse maven项目如何将所有的jar包复制到lib目录下?

      1.情景展示 我们知道,maven项目的jar包并不存在于项目当中,项目所需的jar包都保存在本地仓库中,如果本地仓库没有,会从配置的中央仓库下载,如果中央仓库也没有就会报错: 如上图所示,我想将 ...

  7. 用Java代码列出一个目录下所有的文件

    1.File类 File类在java.io.File包中,所以要导入这个包. File类中用到的方法: boolean isDirectory()       测试此抽象路径名表示的文件是否是个目录 ...

  8. shell程序---编译目录下全部.c或.cpp文件

    今天大波又提起昨天我说的那个程序.这样的,起初我想写一个makefile,每次写完新代码后一键编译目录下所有的.cpp文件. 原因是用makefile的话,每次要把目标文件加紧去才能编译.感觉不方便. ...

  9. 工程代码不编译src的java目录下的xml文件问题及解决

    IDEA的maven项目中,默认源代码目录下(src/main/java目录)的xml等资源文件并不会在编译的时候一块打包进classes文件夹,而是直接舍弃掉.如果使用的是Eclipse,Eclip ...

随机推荐

  1. 关于Mapreduce Text类型赋值的错误

    Mapreduce中Text类型数据被无缘无故替换? ​ 今天偶然看到一个mapreduce demo,直接上手操作 统计两个文件中 最大值 文件中数据格式为 名字 数值 输出为 名字(最大值所对应的 ...

  2. Python学习笔记-StatsModels 统计回归(1)线性回归

    1.背景知识 1.1 插值.拟合.回归和预测 插值.拟合.回归和预测,都是数学建模中经常提到的概念,而且经常会被混为一谈. 插值,是在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数 ...

  3. vue 回顾

    ①.组件的注册 全局注册: // 注册 Vue.component('my-component', { template: '<div>A custom component!</di ...

  4. Windows核心编程笔记之进程

    改变进程基址,获取进程基址 #include <Windows.h> #include <iostream> #include <strsafe.h> #inclu ...

  5. Linux系统应急响应

    目录 排查用户相关的信息 排查进程端口相关的信息 查找恶意程序并杀掉 斩草除根 判断入侵方式,修复漏洞 当我们被告知一台Linux服务器被黑客入侵,黑客利用该服务器进行挖矿,并且在该服务器上放置了木马 ...

  6. mybatis常用功能总结

    mybatis-plus常用功能总结-以User表为例 1.数据库 id name age email create_time update_time version deleted 1 mary 2 ...

  7. 3-5年以上的Android原生开发如何深入进阶?高级工程师必须要掌握哪些?

    前言 曾听过很多人说Android学习很简单,做个App就上手了,工作机会多,毕业后也比较容易找工作.这种观点可能是很多Android开发者最开始入行的原因之一. 在工作初期,工作主要是按照业务需求实 ...

  8. 脱离xml使用JavaConfig实现Spring配置

    总结 情况一: 配置类中类名添加 @Configuration 注解,同时提供一个方法返回一个Bean实例,且这个方法添加注解 @Bean ,就可以由Spring管理此对象 如下所示: User.ja ...

  9. window 下如何安装redis

    1.官方没有 Windows版本的 Redis,但是微软开发并维护了针对Win64的Windows版本. Windows版本下载地址:https://github.com/MicrosoftArchi ...

  10. 详解Tomcat核心配置、http协议

    Tomcat服务器 Tomcat配置与部署(IDEA) https://www.cnblogs.com/gonghr/p/14731266.html Tomcat手工创建和打包第一个Web工程 在ap ...