如何使用selenium在firefox中单击向下箭头并进入下载显示

2024-04-23 17:39:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须用selenium下载一些文件,我在firefox下载屏幕上卡住了

我无法更改selenium-webdriver中的任何设置,因此我必须向下发送arrow_并输入以下载显示:

enter image description here

我该怎么做

不确定代码是否重要,但:

    def save_file(self):
        save_button = "save-file"
        send_button = "confirm"
        time.sleep(5)
        self.wait_for_visibility((By.ID, save_button))
        self.click_button(save_button)
        self.click_button(send_button)

下载过程分为两步。 第一步:点击“保存”按钮

save button

第二步:在第一步之后有额外的确认

confirm

语言当然是python


Tags: 文件代码selfsend屏幕savedefselenium
1条回答
网友
1楼 · 发布于 2024-04-23 17:39:16

您无法使用selenium与OS windows交互。你可以做的是告诉Firefox保存文件,而不用问问题。然后您可以在下载文件夹中找到该文件

您应该使用一些额外的参数启动Firefox:

fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 2)     
fp.set_preference("browser.download.manager.showWhenStarting", False)
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/plain,text/html, application/xml");
driver = webdriver.Firefox(fp)

如果要指定要保存的目标位置,可以通过以下方式进行:

fp.set_preference("browser.download.dir", **target_download_directory**)

编辑:

如果您的测试/程序不存在“飞盲”问题,您可以按下按钮或类似的东西:

import pyautogui

pyautogui.press('down')
pyautogui.press('enter')

你需要先pip install pyautogui。请注意,如果屏幕上出现任何弹出窗口(聚焦),上面的代码片段可能不够。如果我是你,我会使用第一种方法来确保程序的故障安全

相关问题 更多 >