执行Selenium后在temp目录下产生临时文件scoped_dir chrome_BITS

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

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

image


image


image


image


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目录下的文件没被删除。

改进:

使用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()

禁止浏览器插件更新 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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydgss.html