2
votes

Impossible de télécharger un fichier lorsque chromedriver est en mode sans tête. Comment le faire fonctionner?

Pendant le test, un fichier (.html) sera téléchargé depuis l'application Web et je dois vérifier ce fichier en l'ouvrant dans le navigateur. En mode sans tête, mon test fonctionne correctement. Mais chaque fois que je passe en mode sans tête, ce fichier n'est pas téléchargé sur le chemin de téléchargement (c'est-à-dire pointé dans le "user.dir"). Ma version de pilote chrome est 2.44.609538 et la version sélénium est 3.14.


4 commentaires

Veuillez expliquer votre problème en détail. Votre fichier est-il téléchargé sur un mauvais chemin? Avez-vous une erreur? Veuillez partager le code que vous avez déjà essayé. Vous devez ajouter l ' exemple minimal reproductible en question.


Lors de l'exécution en mode sans tête, le fichier est téléchargé dans le répertoire utilisateur. Le test fonctionne parfaitement. Le problème commence lorsque j'exécute le test en mode sans tête.


"User.dir" change en mode sans tête. Voir stackoverflow.com/questions/ 51168671 /… .


Mon implémentation fonctionnait bien mais après avoir mis à jour la gemme Capybara à 3.33.0 et la gemme Selenium à 4.0.0.alpha6, je suis confronté au même problème.


3 Réponses :


1
votes

Apparemment, cela pourrait vous aider

Shawn Button publie la réponse qui y est associée.

Téléchargement avec chrome headless et sélénium


0 commentaires

0
votes

Exécutez-vous le test depuis la ligne de commande?

Parce que, selon une réponse à cette question et ceci , lorsque vous l'exécutez via la ligne de commande, votre user.dir correspond à votre répertoire d'utilisateurs global (C: \ users \ username).


0 commentaires

0
votes

Cela a fonctionné pour notre implémentation ruby:

Capybara.register_driver :scrapping_driver do |app|
      options = Selenium::WebDriver::Chrome::Options.new
      options.add_argument('--headless')
      options.add_argument('--disable-popup-blocking')
      options.add_argument('--disable-gpu')
      options.add_argument('--no-sandbox')
      options.add_argument('--disable-dev-shm-usage')
      options.add_argument('--window-size=1366,2000')
      options.add_preference(:download, directory_upgrade: true,
                                prompt_for_download: false,
                                default_directory: "#{Rails.root}/")
      options.add_preference(:browser, set_download_behavior: { behavior: 'allow' })
      Selenium::WebDriver::Service.driver_path = Webdrivers::Chromedriver.driver_path
      driver = Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
    end

Faites attention au comportement de téléchargement


0 commentaires