我想使用 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)
有人知道如何点击底部的“保存”吗?
虽然如上所述@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)
您可以将键盘模块与 selenium 结合使用
import keyboard, time
keyboard.press(['ctrl', 's'])
time.sleep(1)
keyboard.press('enter')
Run Code Online (Sandbox Code Playgroud)
这将让您保存文件。
| 归档时间: |
|
| 查看次数: |
3554 次 |
| 最近记录: |