2 回答

TA貢獻1803條經(jīng)驗 獲得超6個贊
induce WebDriverWait() 和 wait for element_to_be_clickable() 以及后面的 css 選擇器。
driver.get("https://worldpopulationreview.com/countries/countries-by-gdp")
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"a[download='csvData.csv']"))).click()
您需要導入以下庫。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

TA貢獻1951條經(jīng)驗 獲得超3個贊
有時,如果有東西擋住了,selenium 將無法單擊某個元素。在這種情況下,您可以使用 JavaScript。但首先我會等待該元素可點擊。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
import os
driver = webdriver.Chrome()
url = 'https://worldpopulationreview.com/countries/countries-by-gdp'
driver.get(url)
xpath = '/html/body/div[1]/div/div[1]/div[2]/div[2]/div[1]/div/div/div/div[2]/div[1]/a[2]'
# btn = driver.find_element_by_xpath(xpath)
btn = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, "//a[@download='csvData.csv']")))
driver.execute_script("arguments[0].click();", btn)
# btn.click()
# df = pd.read_csv(os.path.expanduser('~/Downloads/data.csv'))
# print(df.head())
# driver.close()
添加回答
舉報