为了账号安全,请及时绑定邮箱和手机立即绑定

当使用 Selenium 打开“另存为”窗口时,如何单击 Enter?

当使用 Selenium 打开“另存为”窗口时,如何单击 Enter?

Qyouu 2022-06-28 15:15:00
我想使用 Selenium保存这个文件。我可以使用以下代码单击“另存为”: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')ActionChains(driver).move_to_element(driver.find_element_by_xpath('//*[@id="plugin"]')).key_down(Keys.CONTROL).send_keys('s').key_up(Keys.CONTROL).perform()但是,我无法让 python 在弹出窗口中按下“保存”底部。我努力了:driver.find_elements_by_xpath("//*[contains(text(), 'Save')]").click()和ActionChains(driver).send_keys(u'\ue007').perform()有人知道如何点击“保存”底部吗?
查看完整描述

3 回答

?
Smart猫小萌

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')


查看完整回答
反对 回复 2022-06-28
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

您可以将键盘模块与 selenium 结合使用


import keyboard, time


keyboard.press(['ctrl', 's'])

time.sleep(1)

keyboard.press('enter')

这将让您保存文件。


查看完整回答
反对 回复 2022-06-28
?
犯罪嫌疑人X

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

})


查看完整回答
反对 回复 2022-06-28
  • 3 回答
  • 0 关注
  • 244 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信