버튼을 클릭하기 위해 셀레늄을 얻을 수 없습니다

Aug 16 2020

웹 사이트의 검사 요소 그림 자세히보기 내 코드 스 니펫

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()

그런 다음 실행하려고 할 때 이것을 얻습니다. 어떤 도움을 주시면 감사하겠습니다.

NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[name="Excel"]"}

답변

2 DebanjanB Aug 17 2020 at 05:39

원하는 요소는이다 각도 그래서 당신은 유도해야 할 요소를 클릭하여, 요소 WebDriverWait을 을 위해 element_to_be_clickable()당신은 다음 중 하나를 사용할 수 있습니다 로케이터 전략 :

  • 사용 CSS_SELECTOR:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button[mat-button] > span.mat-button-wrapper span"))).click()
    
  • 사용 XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@mat-button]/span[@class='mat-button-wrapper']//span[text()='Excel']"))).click()
    
  • 참고 : 다음 가져 오기를 추가해야합니다.

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
1 hams222 Aug 16 2020 at 13:42

driver.find_element_by_name ( 'Excel') 은 name = 'Excel'인 태그를 선택합니다.

예를 들어 다음과 같은 태그를 찾습니다.

<div name='Excel'>Hello</div>.

find_element_by_name에 해당하는 CSS는 [name = "Excel"]입니다.

웹 사이트의 inspect 요소 그림에서 div 안에 'Excel'이라는 텍스트가있는 요소를 찾으려고하는 것 같으므로 대신 다음 함수를 사용해야합니다.

driver.find_element_by_link_text('Excel')

도움이 되었기를 바랍니다.

Python selenium webdriver에 대한 자세한 내용은 이 링크를 사용 하십시오 . 그것은 저에게 많은 도움이되었습니다!