Comment faire pour Télécharger un Fichier/Photo à l'aide de “Charger une Image Bouton” en Selenium Webdriver
WebElement UploadImg = driver.findElement(By.xpath("//*[@id='file_upload_button']"));
UploadImg.click();
WebElement frame =driver.switchTo().activeElement();
frame.sendKeys("d:.jpg");
Ce code, il suffit d'ouvrir le système de la fenêtre, mais il ne choisissez pas n'importe quelle Photo/Fichier
- Salut. Vous ne pouvez pas automatiser toutes les fenêtres en fonction de la boîte de dialogue windows à l'aide de sélénium. Le sélénium est uniquement destiné pour le navigateur. Si vous voulez télécharger le fichier, puis utiliser la méthode sendkeys pour tapez le chemin d'accès du fichier et effectuer soumettre appuyez sur le bouton.
- Vous n'avez pas une zone de texte à côté de UploadImage bouton pour entrer le chemin d'accès du fichier que vous tentez de télécharger? Si vous avez, alors pas besoin de cliquer sur le bouton de téléchargement. directement coller le chemin d'accès au fichier à l'aide de sendKeys dans la zone de texte.
- Site web ne possède pas de zone de texte à côté de UploadImage bouton pour entrer dans le chemin ...!Il suffit de Bouton, Alors comment puis-je envoyer des parcours à l'aide de ce bouton
Vous devez vous connecter pour publier un commentaire.
Essayez de changer votre code:
D'exécuter Ce code :
Explication: Chaque bouton Parcourir a un
<input>
tag dans les DOM en état caché . En utilisant le dessous de lignes de code, nous venons de changer la classe et le style attributs des balises enfermant que<input>
étiquette de manière à ce qu'elle devienne visible et unesendKeys()
commande peut être exécutée sur elle. Après cela, lorsque vous faites unsendKeys
avec le chemin absolu de l'image/fichier que vous souhaitez télécharger.Kyop réponse est bonne, mais pour que cela fonctionne, l'élément que vous trouver doit être dans la forme
<input type="file" id="file_upload_button">
. Pourriez-vous poster un extrait de code HTML le code pour vérifier cela?Aussi pourquoi compliquer les choses avec XPath pour une id? Est-il un avantage par rapport à un simple à l'aide de
driver.findElement(By.id("file_upload_button"))
à la place?Source: ce post
WebElement UploadImg = driver.findElement(By.id("file_upload"));
. Vous devez cibler l'entrée avectype="file"
pastype="button"
.Je suis en utilisant l'idée que @Raavan expliqué.
Par exemple: Sur cette page https://touch.facebook.com/marketplace/selling/item/ je suis en utilisant le code suivant avec succès: