Não é possível obter o selênio para clicar no botão
Foto do elemento de inspeção do site Foto mais detalhada Meu trecho de código
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()
Eu recebo isso quando tento executá-lo, qualquer ajuda seria apreciada
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[name="Excel"]"}
Respostas
O elemento desejado é um elemento Angular , portanto, para clicar no elemento, você deve induzir WebDriverWait para o element_to_be_clickable()
e pode usar qualquer uma das seguintes estratégias de localizador :
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 : Você deve adicionar as seguintes importações:
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') seleciona uma tag com name='Excel'.
Por exemplo, ele encontraria uma tag como esta:
<div name='Excel'>Hello</div>.
O equivalente CSS para find_element_by_name é [name="Excel"].
Pela foto do elemento de inspeção do seu site, parece que você está tentando encontrar um elemento com o texto 'Excel' dentro do div, então, em vez disso, você precisa usar a seguinte função:
driver.find_element_by_link_text('Excel')
Espero que tenha ajudado!
Para saber mais sobre o driver da web Python Selenium, use este link . Me ajudou muito!