J'essaie de télécharger un fichier .pdf dans ma section locale pour que je puisse utiliser Apache PDFBox pour en lire le texte et le vérifier dans le cadre de ma suite de tests. J'ai déjà trouvé du code pour télécharger le pdf de Firefox en cliquant sur une URL. Cela ne fonctionne pas pour moi puisque le pdf avec lequel je travaille est un document confidentiel donc il n'est pas exposé par une URL, à la place chargé dans PDF Viewer comme une fenêtre contextuelle. Est-ce que quelqu'un sait comment cliquer sur le bouton de téléchargement dans Firefox PDF Viewer après avoir chargé le PDF Viewer dans le navigateur?Téléchargement de pdf avec Selenium WebDriver pour Firefox
J'ai essayé de regarder vers le haut par l'identifiant de l'élément = « télécharger »:
(new WebDriverWait(driver, 10)).until(ExpectedConditions.presenceOfElementLocated(By.id("download")));
driver.findElement(By.id("download")).click();
Malheureusement, cela ne fonctionne pas comme il est dit qu'il ne peut pas trouver l'élément. Quelqu'un sait-il une solution de contournement?
MISE À JOUR: La fenêtre contextuelle que j'ai décrite était un élément iframe. Cela a provoqué l'impossibilité de trouver l'élément "download". Correction de la réponse switchTo() de @ 4M01.
J'ai compris que, dans votre cas, vous devez d'abord basculer() sur le navigateur pop-up, puis cliquer sur l'icône de téléchargement présente dans le navigateur Firefox. Même après avoir fait ce PDF ne serait pas téléchargé tout de suite. Vous devez faire un réglage qui vous aidera à télécharger le PDF directement.Ces paramètres sont mentionnés par @zsbappa. – Amol
Également votre question était, Selenium lançait une exception parce que l'élément n'a pas été trouvé. En fait, il n'y a pas de difficultés à trouver l'élément *, mais vous n'avez pas basculé dans la fenêtre contextuelle où votre document confidentiel a été ouvert. – Amol
Désolé, j'ai supprimé mon commentaire quand j'ai réalisé. Votre réponse a résolu mon problème merci! J'ai créé un Robot (java.awt) pour appuyer sur le bouton OK après avoir demandé si je voulais enregistrer ou ouvrir un fichier, mais cela a fonctionné comme un charme. Je devais m'assurer de switchTo.defaultContent() après aussi. Je pense que je n'aurais pas à créer le robot en changeant la préférence "browser.helperApps.neverAsk.saveToDisk". –