Non riesco a ottenere il selenio per fare clic sul pulsante
Pic dell'elemento inspect del sito Web Più in profondità pic My Code snippet
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()
Quindi ottengo questo quando provo a eseguirlo, qualsiasi aiuto sarebbe apprezzato
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[name="Excel"]"}
Risposte
L'elemento desiderato è un elemento angolare , quindi per fare clic sull'elemento devi indurre WebDriverAttendi e element_to_be_clickable()
puoi utilizzare una delle seguenti strategie di localizzazione :
Usando
CSS_SELECTOR
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button[mat-button] > span.mat-button-wrapper span"))).click()
Usando
XPATH
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@mat-button]/span[@class='mat-button-wrapper']//span[text()='Excel']"))).click()
Nota : è necessario aggiungere le seguenti importazioni:
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') seleziona un tag con name='Excel'.
Ad esempio, troverebbe un tag come questo:
<div name='Excel'>Hello</div>.
L'equivalente CSS per find_element_by_name è [name="Excel"].
Dall'immagine dell'elemento inspect del tuo sito web, sembra che tu stia cercando di trovare un elemento con il testo "Excel" all'interno del div, quindi devi utilizzare la seguente funzione:
driver.find_element_by_link_text('Excel')
Spero che abbia aiutato!
Per ulteriori informazioni sul webdriver Python Selenium, utilizzare questo collegamento . Mi ha aiutato molto!