我想在这个网站上下载图像https://imginn.com/p/CXVmwujLqbV/通过按钮。但我总是失败。这是我使用的代码。
driver.find_element_by_xpath('/html/body/div[2]/div[5]/a').click()
好吧,查看这篇文章下载资源。图片在"img"标记中有"src"属性,该属性包含图片。
此外,(尽管这可能只是为了简化这个问题(,不要硬编码您的xpath。学会使用";页面对象模式";。
这里有几个可能的问题:
- 在访问此元素之前,您需要添加一个延迟/等待
- 您必须滚动页面,因为您希望单击的元素最初不在视图中
- 你应该改进你的定位器。强烈建议不要使用绝对XPaths
这应该有效:
from selenium import webdriver
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
from selenium.webdriver.common.action_chains import ActionChains
import time
driver = webdriver.Chrome(executable_path='chromedriver.exe')
driver.set_window_size(1920,1080)
wait = WebDriverWait(driver, 20)
actions = ActionChains(driver)
driver.get("https://imginn.com/p/CXVmwujLqbV/")
button = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "div.downloads a")))
time.sleep(0.5)
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(1)
#actions.move_to_element(button).perform()
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.downloads a"))).click()