Không thể nhận được selen để nhấp vào nút

Aug 16 2020

Hình ảnh phần tử kiểm tra của trang web Xem thêm trong Hình ảnh chiều sâu Đoạn mã của tôi

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

Sau đó tôi nhận được điều này khi tôi cố gắng chạy nó, mọi sự trợ giúp sẽ được đánh giá cao

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

Trả lời

2 DebanjanB Aug 17 2020 at 05:39

Các phần tử mong muốn là một góc yếu tố, do đó bấm vào yếu tố bạn cần phải tạo ra WebDriverWait cho element_to_be_clickable()và bạn có thể sử dụng một trong những điều sau Chiến lược Locator :

  • Sử dụng CSS_SELECTOR:

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

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@mat-button]/span[@class='mat-button-wrapper']//span[text()='Excel']"))).click()
    
  • Lưu ý : Bạn phải thêm các lần nhập sau:

    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') chọn một thẻ có tên = 'Excel'.

Ví dụ: nó sẽ tìm thấy một thẻ như sau:

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

CSS tương đương cho find_element_by_name là [name = "Excel"].

Từ ảnh của phần tử kiểm tra trang web của bạn, có vẻ như bạn đang cố gắng tìm một phần tử có văn bản 'Excel' bên trong div, vì vậy, thay vào đó, bạn cần sử dụng hàm sau:

driver.find_element_by_link_text('Excel')

Hy vọng rằng đã giúp!

Để biết thêm về trình duyệt web Python selen, hãy sử dụng liên kết này . Nó đã giúp rất nhiều cho tôi!