J'essaie de télécharger une image à l'intérieur d'un bouton, mais j'obtiens toujours cette erreur :

selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
(Session info: chrome=79.0.3945.130)

C'est mon code

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait

import time
import os

driver = webdriver.Chrome()
driver.get("https://easypdf.com/fr/convertir-ocr")
driver.maximize_window()

time.sleep(10)
driver.find_element_by_xpath('//*[@id="social"]/div/div[1]').click()

uploadPhotoBtn = driver.find_element_by_xpath('//*[@id="dzupload"]/div')
driver.execute_script('arguments[0].style = ""; arguments[0].style.display = "block"; arguments[0].style.visibility = "visible";', uploadPhotoBtn)
uploadPhotoBtn.send_keys("C:\\Users\\basma\\Desktop\\python\\toImg\\jpg0.jpg")
1
Lara 3 févr. 2020 à 16:06

1 réponse

Meilleure réponse

Pour télécharger une image à convertir au sein du site Web https://easypdf.com/fr/convertir-ocr en utilisant Selenium vous devez :

  • Localisez la balise <input> où vous devez invoquer send_keys()
  • Modifiez la valeur de l'attribut type de hidden à text
  • Invoquer send_keys()
  • Bloc de code:

    from selenium import webdriver
    
    options = webdriver.ChromeOptions() 
    options.add_argument("start-maximized")
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    driver = webdriver.Chrome(options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
    driver.get("https://easypdf.com/fr/convertir-ocr")
    element = driver.find_element_by_xpath("//input[@id='tool-name']")
    driver.execute_script("document.getElementById('tool-name').setAttribute('type','text')")
    element.click()
    element.clear()
    element.send_keys(r'C:\Users\Debanjan.B\Desktop\screenshots\31_07_2019.png')
    
  • Instantané du navigateur:

image_upload


Mise à jour

Il serait un peu difficile de télécharger un fichier image pour un traitement ultérieur en tant que page Web https://easypdf.com/fr/convertir-ocr est protégé par reCAPTCHA invisible.

<div class="rc-anchor rc-anchor-invisible rc-anchor-light  rc-anchor-invisible-hover"><div id="recaptcha-accessible-status" class="rc-anchor-aria-status" aria-hidden="true">Veuillez valider le test reCAPTCHA.. </div><div class="rc-anchor-error-msg-container" style="display:none"><span class="rc-anchor-error-msg" aria-hidden="true"></span></div><div class="rc-anchor-normal-footer smalltext" aria-hidden="true"><div class="rc-anchor-logo-large" role="presentation"><div class="rc-anchor-logo-img rc-anchor-logo-img-large"></div></div><div class="rc-anchor-pt"><a href="https://www.google.com/intl/fr/policies/privacy/" target="_blank">Confidentialité</a><span aria-hidden="true" role="presentation"> - </span><a href="https://www.google.com/intl/fr/policies/terms/" target="_blank">Conditions</a></div></div><div class="rc-anchor-invisible-text"><span>protection par <strong>reCAPTCHA</strong></span><div class="rc-anchor-pt"><a href="https://www.google.com/intl/fr/policies/privacy/" target="_blank">Confidentialité</a><span aria-hidden="true" role="presentation"> - </span><a href="https://www.google.com/intl/fr/policies/terms/" target="_blank">Conditions</a></div></div></div>

Par conséquent, lorsque vous essayez de cliquer sur le bouton de conversion, vous serez confronté au comme suit :

  • Bloc de code:

    driver.get("https://easypdf.com/fr/convertir-ocr")
    element = driver.find_element_by_xpath("//input[@id='tool-name']")
    driver.execute_script("document.getElementById('tool-name').setAttribute('type','text')")
    element.click()
    element.clear()
    element.send_keys(r'C:\Users\Debanjan.B\Desktop\screenshots\31_07_2019.png')
    driver.find_element_by_xpath("//button[@id='btnUpload']").click()
    
  • Instantané du navigateur:

invisible_reCAPTCHA

0
DebanjanB 7 févr. 2020 à 16:43