1.背景

此网站一直加载中,所以没法下一步,用了阻止js的方法来解决。

2.方案

import time
from selenium import webdriver

option = webdriver.ChromeOptions()
#option.add_argument('headless')
driver = webdriver.Chrome(executable_path='chromedriver', chrome_options=option)

url='https://kd.nsfc.gov.cn/finalDetails?id=9e581211af5801727362199915e78291&pagePosition=4'
#driver.get(url)#此方法一直加载,用下面方法
#page_src = driver.page_source
#print(page_src)

driver.set_page_load_timeout(6)#6秒后,不再等待
driver.set_script_timeout(6)#与上面一起用
try:
  driver.get(url)
except:
  driver.execute_script('window.stop()')

time.sleep(1)
driver.find_element_by_xpath('/html/body/div/div/div[4]/div/div[1]/div[1]/div[2]/div[6]/div/div[3]/div/div[2]/div/span[2]').click()

time.sleep(1)

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

element=driver.find_element_by_xpath('/html/body/div/div/div[4]/div/div[1]/div[1]/div[2]/div[6]/div/div[3]/div/div[2]/div/div/div[3]/img[1]')#定位图片所在的元素
action = ActionChains(driver).move_to_element(element)#移动到该元素
action.context_click(element)#右键点击该元素
action.send_keys(Keys.ARROW_DOWN)#点击键盘向下箭头

#未成功,原因是图片所在元素,输入字母
action.send_keys('v')#键盘输入V保存图
action.perform()#执行保存