Is it Firefox or Geckodriver, which creates “rust_mozprofile” directory

前端 未结 4 1085
天涯浪人
天涯浪人 2020-11-28 15:48

Whenever we invoke Firefox, under \'/tmp\' directory rust_mozprofile directories are getting created. As Firefox internally calls Geckodriver we are not sure whether Firefox

相关标签:
4条回答
  • 2020-11-28 16:21

    If you have a closer look at the geckodriver v0.18.0 logs closely you will observe the very first occurrence of rust_mozprofile occurs in the following line:

    1504762617094   Marionette  CONFIG  Matched capabilities: {"browserName":"firefox","browserVersion":"56.0","platformName":"windows_nt","platformVersion":"6.2","pageLoadStrategy":"normal","acceptInsecureCerts":false,"timeouts":{"implicit":0,"pageLoad":300000,"script":30000},"rotatable":false,"specificationLevel":0,"moz:processID":5848,"moz:profile":"C:\\Users\\AtechM_03\\AppData\\Local\\Temp\\rust_mozprofile.OfFuR9ogm33d","moz:accessibilityChecks":false,"moz:headless":false}
    

    This log clearly indicates that marionette is being configured with:

    "moz:profile":"C:\\Users\\AtechM_03\\AppData\\Local\\Temp\\rust_mozprofile.OfFuR9ogm33d" 
    

    And this configuration is done by the WebDriver instance i.e. the GeckoDriver.

    It's the GeckoDriver which internally configures the Marionette which in-turn initiates the Mozilla Firefox Browser.

    IMO, this workflow is in practice since we migrated from the Legacy Firefox to Marionette based Firefox. Hence the same must be the case with Geckodriver - 13 as well.


    Update:

    GeckoDriver as an application/exe file:

    0 讨论(0)
  • 2020-11-28 16:28

    A solution is to use driver.quit() this closes all browsers and takes care of the profiles

    Another solution is to add a custom profile

    fp = webdriver.FirefoxProfile('specify location to profile .default') 
    driver = webdriver.Firefox(firefox_profile=fp)
    
    0 讨论(0)
  • 2020-11-28 16:38

    I had a similar problem and I solved it by changing the Environment settings in Windows. Meaning that I changed the directory for the TMP and TEMP files, and after a reboot, the rust_mozprofile folder was generated where I wanted it.

    This is the source I used: https://www.toolsqa.com/selenium-webdriver/how-to-use-geckodriver/ Specifically the "Set property in Environment Variables:-" section.

    Sadly this will effect all Software that saves files to those folders. (In my case that is what I wanted though.) If there is a way to make only the rust_mozprofile folder be created in a specific directory through the program, I would love to learn more.

    0 讨论(0)
  • 2020-11-28 16:44

    You can set the location with the TMPDIR envvar. It's also useful to set both TMP and TEMP for other programs.

    0 讨论(0)
提交回复
热议问题