Düğmeye tıklamak için selenyum alamıyorum
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
İ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
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!