Düğmeye tıklamak için selenyum alamıyorum

Aug 16 2020

Web sitesinin inceleme öğesinin resmi Daha fazla derinlik resmi Kodum pasajı

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

Daha sonra çalıştırmaya çalıştığımda bunu alıyorum, herhangi bir yardım takdir edilecektir.

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

Yanıtlar

2 DebanjanB Aug 17 2020 at 05:39

İstenilen eleman bir olduğunu Açısal yüzden ikna etmek zorunda elemana tıklayın, eleman WebDriverWait için element_to_be_clickable()ve aşağıdakilerden birini kullanabilirsiniz Bulucu Stratejileri :

  • Kullanarak CSS_SELECTOR:

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

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@mat-button]/span[@class='mat-button-wrapper']//span[text()='Excel']"))).click()
    
  • Not : Aşağıdaki içe aktarmaları eklemeniz gerekir:

    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') adı = 'Excel' olan bir etiket seçer.

Örneğin, şuna benzer bir etiket bulacaktır:

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

Find_element_by_name için CSS eşdeğeri [name = "Excel"] 'dir.

Web sitenizin inceleme öğesinin resminden, div içinde 'Excel' metnine sahip bir öğe bulmaya çalıştığınız anlaşılıyor, bunun yerine aşağıdaki işlevi kullanmanız gerekir:

driver.find_element_by_link_text('Excel')

Umarım yardımcı olmuştur!

Python selenyum web sürücüsü hakkında daha fazla bilgi için bu bağlantıyı kullanın . Bana çok yardımcı oldu!