首页 > 解决方案 > 无法点击提交按钮

问题描述

我已经写了代码

import os
from webdriver_manager.chrome import ChromeDriverManager
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
options = Options()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--start-maximized')
options.page_load_strategy = 'eager'
# options.add_argument("--headless");
driver = webdriver.Chrome(options=options)
wait = WebDriverWait(driver, 20)   
driver.get("https://www1.nseindia.com/products/content/derivatives/equities/historical_fo.htm")

我正在尝试单击按钮

driver.find_element_by_class_name('getdata-button').click()

但是,按钮没有被点击。如何点击“获取数据按钮”?

标签: pythonseleniumselenium-webdriverselenium-chromedriver

解决方案


您必须等到该元素可单击,否则 Selenium 会尝试立即找到该元素并因NoSuchElementException: Message: no such element: Unable to locate element异常而失败。
尝试这个:

import os
from webdriver_manager.chrome import ChromeDriverManager
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
options = Options()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--start-maximized')
options.page_load_strategy = 'eager'
# options.add_argument("--headless");
driver = webdriver.Chrome(options=options)
wait = WebDriverWait(driver, 40)   
driver.get("https://www1.nseindia.com/products/content/derivatives/equities/historical_fo.htm")
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.getdata-button'))).click()

推荐阅读