執行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目錄下的文件沒被刪除。

改進:

  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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM