python selenium下载在docker容器中不工作

python selenium下载在docker容器中不工作,python,selenium,selenium-webdriver,docker-compose,selenium-chromedriver,Python,Selenium,Selenium Webdriver,Docker Compose,Selenium Chromedriver,我的本地代码可以通过selenium成功下载一个文件,但当我在docker容器中运行相同的代码时,文件似乎无法下载。我没有得到任何错误,但我找不到该文件 我认为,使用/tmp目录可以消除所有权限问题。那怎么了 my_download_path = "/tmp/test_download/" print "download path: ", my_download_path chrome_options = Options() chrome_options.add_experimental_opt

我的本地代码可以通过selenium成功下载一个文件,但当我在docker容器中运行相同的代码时,文件似乎无法下载。我没有得到任何错误,但我找不到该文件

我认为,使用/tmp目录可以消除所有权限问题。那怎么了

my_download_path = "/tmp/test_download/"
print "download path: ", my_download_path
chrome_options = Options()
chrome_options.add_experimental_option('prefs', {
      "download.default_directory": my_download_path,
      "download.prompt_for_download": False,  
      "download.directory_upgrade": True,
      "plugins.always_open_pdf_externally": True
        })
chrome_driver = "/usr/local/bin/chromedriver"
self.driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=chrome_driver)
Docker容器是基于的,并且它们是最小的,因此我的期望是:

  • 那里没有任何GUI(除非已安装)
  • 您正在下运行脚本(除非您创建了一个新用户并切换到该用户)
  • 您可能还需要通过命令使chromedriver可执行
  • 因此,将下面几行添加到WebDriver初始化例程中:

    chrome_options.add_argument("--headless")
    chrome_options.add_argument("--no-sandbox")
    
    您的测试应该按照预期开始工作

    参考资料:

    Docker容器是基于的,并且它们是最小的,因此我的期望是:

  • 那里没有任何GUI(除非已安装)
  • 您正在下运行脚本(除非您创建了一个新用户并切换到该用户)
  • 您可能还需要通过命令使chromedriver可执行
  • 因此,将下面几行添加到WebDriver初始化例程中:

    chrome_options.add_argument("--headless")
    chrome_options.add_argument("--no-sandbox")
    
    您的测试应该按照预期开始工作

    参考资料:


    你让它工作了吗?你让它工作了吗?