बटन क्लिक करने के लिए सेलेनियम नहीं मिल सकता

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 ('एक्सेल') नाम के साथ एक टैग का चयन करता है = 'एक्सेल'।

उदाहरण के लिए, यह इस तरह एक टैग मिलेगा:

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

Find_element_by_name के लिए सीएसएस समकक्ष [नाम = "एक्सेल"] है।

आपकी वेबसाइट के निरीक्षण तत्व के चित्र से, ऐसा लगता है कि आप div के अंदर पाठ 'एक्सेल' के साथ एक तत्व खोजने की कोशिश कर रहे हैं, इसलिए इसके बजाय, आपको निम्नलिखित फ़ंक्शन का उपयोग करने की आवश्यकता है:

driver.find_element_by_link_text('Excel')

उम्मीद है कि मदद की!

पायथन सेलेनियम वेबड्राइवर पर अधिक जानकारी के लिए, इस लिंक का उपयोग करें । इसने मेरे लिए बहुत मदद की!