3 回答
TA贡献1911条经验 获得超7个赞
更新
虽然如上所述@Glazbeeselenium无法访问操作系统对话框,但有一个解决方法pyautogui。如果您不想在您chrome_options的 中设置默认下载文件夹,请尝试以下操作webdriver:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import pyautogui
import time
driver = webdriver.Chrome(chrome_options=options, executable_path = chrome_driver_path)
driver.get('https://www.shs-conferences.org/articles/shsconf/pdf/2019/06/shsconf_m3e22019_03006.pdf')
webdriver.ActionChains(driver).move_to_element(driver.find_element_by_xpath('//*[@id="plugin"]')).key_down(Keys.CONTROL).send_keys('s').key_up(Keys.CONTROL).perform()
time.sleep(1)
pyautogui.press('enter')
TA贡献1812条经验 获得超5个赞
您可以将键盘模块与 selenium 结合使用
import keyboard, time
keyboard.press(['ctrl', 's'])
time.sleep(1)
keyboard.press('enter')
这将让您保存文件。
TA贡献2080条经验 获得超4个赞
据报道此答案已过时。我无法对此进行测试,请考虑使用其他答案中的解决方案。
这对您不起作用的原因是 Chrome 使用的保存对话框未呈现为网页。它是本机代码。
为了解决这个问题,您可以使用该selenium.webdriver.chrome.options.Options模块。您需要设置一个默认文件目录,否则会出现提示。您可以使用如下脚本;您可以在此处找到更多信息。您还可以在此处找到有关为何使用实验选项的信息
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_experimental_option("prefs", {
"download.default_directory": r"C:\Users\xxx\downloads\Test",
"download.prompt_for_download": False,
"download.directory_upgrade": True,
"safebrowsing.enabled": True
})
添加回答
举报