[FIXED] Laden Sie den Finish-Dialog Mozilla Selenium Ubuntu herunter

Ausgabe

Ich habe ein Problem mit einem Python-Skript, das Selen mit Mozilla Firefox verwendet. Wenn die Skripte die gewünschte Datei herunterladen und den Vorgang abschließen, öffnet Mozilla den Download-Dialog und sagt, dass der Download in meiner rechten oberen Ecke des Fensters abgeschlossen ist. Ich muss dieses Fenster schließen, aber ich konnte es nicht erreichen, das Fenster zu schließen und das Skript zu beenden.

Was könnte ich tuen?

from selenium import webdriver
import unittest
from selenium.webdriver.common.keys import Keys
import time
import requests
#################################################################################

options = webdriver.FirefoxOptions()

options.set_preference("browser.download.manager.showAlertOnComplete", False)
options.set_preference("browser.download.panel.shown", False)
options.set_preference("browser.download.animateNotifications", False)
options.set_preference("browser.helperApps.alwaysAsk.force", False)
options.set_preference("browser.download.manager.showWhenStarting", False)

options.set_preference(
    "browser.helperApps.neverAsk.saveToDisk",
    (
        "application/pdf, application/zip, application/octet-stream, "
        "text/csv, text/xml, application/xml, text/plain, "
        "text/octet-stream, application/x-gzip, application/x-tar "
        "application/"
        "vnd.openxmlformats-officedocument.spreadsheetml.sheet"
    ),
)

###############################################################################3
browser=webdriver.Firefox(options=options)
browser.get('http://10.1.0.100:4025/accounts/login/?next=/')

time.sleep(3)

id_box=browser.find_element("id","id_username")
id_box.send_keys('admin')

time.sleep(1)

pass_box=browser.find_element("id","id_password")
pass_box.send_keys('changeme')

time.sleep(1)
login_button = browser.find_element("name","submit")
time.sleep(1)
login_button.click()
time.sleep(1)
browser.get("http://10.1.0.100:4025/backup/list")

time.sleep(4)
generate_button=browser.find_element("id","generate")
generate_button.click()

alert = browser.switch_to.alert
try:
   alert.accept() #If you want to Accept the Alert
except:
   alert.dismiss()  #If  You want to Dismiss the Alert.



time.sleep(25)
browser.get("http://10.1.0.100:4025/backup/download/all")
time.sleep(5)
################################################

################################################
time.sleep(5)
browser.close()

Lösung

Es gibt viele Möglichkeiten, das standardmäßige Download-Verhalten in Firefox zu ändern. Sie können die folgenden Optionen verwenden, um zu verhindern, dass dieses Download-Fenster überhaupt angezeigt wird:

from selenium import webdriver

options = webdriver.FirefoxOptions()

options.set_preference("browser.download.manager.showAlertOnComplete", False)
options.set_preference("browser.download.panel.shown", False)
options.set_preference("browser.download.animateNotifications", False)
options.set_preference("browser.helperApps.alwaysAsk.force", False)
options.set_preference("browser.download.manager.showWhenStarting", False)

options.set_preference(
    "browser.helperApps.neverAsk.saveToDisk",
    (
        "application/pdf, application/zip, application/octet-stream, "
        "text/csv, text/xml, application/xml, text/plain, "
        "text/octet-stream, application/x-gzip, application/x-tar "
        "application/"
        "vnd.openxmlformats-officedocument.spreadsheetml.sheet"
    ),
)

driver = webdriver.Firefox(options=options)


Beantwortet von –
Michael Mintz


Antwort geprüft von –
Terry (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like