Impossible d'obtenir du sélénium pour cliquer sur le bouton
Image de l'élément d'inspection du site Web Plus en profondeur pic Mon extrait de code
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from time import sleep
import requests
///
excel = driver.find_element_by_name('Excel')
excel.click()
J'obtiens alors ceci lorsque j'essaie de l'exécuter, toute aide serait appréciée
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[name="Excel"]"}
Réponses
L'élément souhaité est un élément angulaire , donc pour cliquer sur l'élément, vous devez induire WebDriverWait et vous element_to_be_clickable()
pouvez utiliser l'une des stratégies de localisation suivantes :
Utilisation
CSS_SELECTOR
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button[mat-button] > span.mat-button-wrapper span"))).click()
Utilisation
XPATH
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@mat-button]/span[@class='mat-button-wrapper']//span[text()='Excel']"))).click()
Remarque : Vous devez ajouter les importations suivantes :
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
driver.find_element_by_name('Excel') sélectionne une balise avec name='Excel'.
Par exemple, il trouverait une balise comme celle-ci :
<div name='Excel'>Hello</div>.
L'équivalent CSS de find_element_by_name est [name="Excel"].
D'après la photo de l'élément d'inspection de votre site Web, il semble que vous essayez de trouver un élément avec le texte "Excel" à l'intérieur de la div, donc à la place, vous devez utiliser la fonction suivante :
driver.find_element_by_link_text('Excel')
J'espère que cela a aidé!
Pour en savoir plus sur le pilote Web Python Selenium, utilisez ce lien . Cela m'a beaucoup aidé !