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

Mod*_*den 0 python selenium

我想使用 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()
Run Code Online (Sandbox Code Playgroud)

但是,我无法让 python 在弹出窗口中按“保存”底部。我试过了:

driver.find_elements_by_xpath("//*[contains(text(), 'Save')]").click()
Run Code Online (Sandbox Code Playgroud)

ActionChains(driver).send_keys(u'\ue007').perform()
Run Code Online (Sandbox Code Playgroud)

有人知道如何点击底部的“保存”吗?

Kos*_*dis 5

更新

虽然如上所述@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')
Run Code Online (Sandbox Code Playgroud)


Bis*_*hnu 5

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

import keyboard, time

keyboard.press(['ctrl', 's'])
time.sleep(1)
keyboard.press('enter')
Run Code Online (Sandbox Code Playgroud)

这将让您保存文件。