ไม่สามารถรับซีลีเนียมเพื่อคลิกปุ่ม
รูปภาพขององค์ประกอบการตรวจสอบของเว็บไซต์ More in Depth pic My Code snippet
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"]"}
คำตอบ
องค์ประกอบที่ต้องการเป็นเชิงมุมองค์ประกอบเพื่อที่จะคลิกองค์ประกอบที่คุณต้องทำให้เกิด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
driver.find_element_by_name ('Excel')เลือกแท็กที่มีชื่อ = 'Excel'
ตัวอย่างเช่นจะพบแท็กดังนี้:
<div name='Excel'>Hello</div>.
CSS ที่เทียบเท่าสำหรับ find_element_by_name คือ [name = "Excel"]
จากรูปขององค์ประกอบการตรวจสอบเว็บไซต์ของคุณดูเหมือนว่าคุณกำลังพยายามค้นหาองค์ประกอบที่มีข้อความ 'Excel' อยู่ใน div ดังนั้นคุณต้องใช้ฟังก์ชันต่อไปนี้แทน:
driver.find_element_by_link_text('Excel')
หวังว่าจะช่วยได้!
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Python selenium webdriver ให้ใช้ลิงก์นี้ มันช่วยฉันได้มาก!