简体   繁体   English

Selenium Firefox Python:我们可以使用下载文件夹的相对路径吗?

[英]Selenium Firefox Python: Can we use relative path for downloads folder?

Hello:) This is related to my question here Selenium Firefox Python: How to change download directory thank you so much @Thamognya for the assistance.您好:)这与我的问题有关Selenium Firefox Python:如何更改下载目录非常感谢@Thamognya 的帮助。

Can we use a relative path for this?我们可以为此使用相对路径吗? We're using Docker in CircleCI and it will be much more convenient to use the relative path "ProjectTitle/downloads" as path for download.我们在 CircleCI 中使用 Docker ,使用相对路径"ProjectTitle/downloads"作为下载路径会更方便。 Currently it's working for absolute path /Users/this/is/the/absolute/path/downloads .目前它适用于绝对路径/Users/this/is/the/absolute/path/downloads Is there a way to format it to work for relative path?有没有办法格式化它以适用于相对路径?

I tried this but it goes to the default Downloads folder:我试过了,但它进入了默认的下载文件夹:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
    options = Options()
    options.set_preference("browser.download.folderList", 2)
    options.set_preference("browser.download.manager.showWhenStarting", False)
    options.set_preference("browser.download.dir", r"./downloads")
    options.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv")
    context.driver = webdriver.Firefox(options=options)

Even for this it goes to the default Downloads folder as well:即使这样,它也会进入默认的下载文件夹:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
    options = Options()
    options.set_preference("browser.download.folderList", 2)
    options.set_preference("browser.download.manager.showWhenStarting", False)
    options.set_preference("browser.download.dir", r'ProjectTitle/downloads')
    options.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv")
    context.driver = webdriver.Firefox(options=options)

Other attempts:其他尝试:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
    options = Options()
    options.set_preference("browser.download.folderList", 2)
    options.set_preference("browser.download.manager.showWhenStarting", False)
    options.set_preference("browser.download.dir", "ProjectTitle/downloads")
    options.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv")
    context.driver = webdriver.Firefox(options=options)

Others:其他:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
    options = Options()
    options.set_preference("browser.download.folderList", 2)
    options.set_preference("browser.download.manager.showWhenStarting", False)
    options.set_preference("browser.download.dir", r"./downloads")
    options.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv")
    context.driver = webdriver.Firefox(options=options)

You can always convert a relative path to an absolute path.您始终可以将相对路径转换为绝对路径。

( https://stackoverflow.com/a/40311142/7058266 ) https://stackoverflow.com/a/40311142/7058266

Example:例子:

>>> import os
>>> os.path.abspath("downloads_folder")
'/Users/michael/github/SeleniumBase/examples/downloads_folder'

Just convert the relative path to an absolute one before you use it.只需在使用之前将相对路径转换为绝对路径。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM