Как загружать XML-файлы, избегая всплывающих окон Этот тип файлов может нанести вред вашему компьютеру через ChromeDriver и Chrome, используя Selenium в Python - PullRequest
1 голос
/ 29 марта 2019

Я хочу загрузить ежедневный XML-файл от поставщика. Мне удалось войти в систему и щелкнуть ссылку Принять загрузку, чтобы начать загрузку с помощью chromedriver.

Но я получаю всплывающее окно "Этот тип файла может нанести вред вашему компьютеру". MIME страницы text / html, я не уверен, что ссылка text / javascript

Я перепробовал все предложенные решения с опциями типа

print('Starting..')
prefs = {
'download.default_directory': 'C:\\Users\MainDesk\Downloads',
'download.prompt_for_download': False,
'download.extensions_to_open': 'xml',
'safebrowsing.enabled': False
}

options = Options()

options.add_experimental_option('prefs',prefs)

browser = webdriver.Chrome(options=options, executable_path='C:\\chromedriver.exe')

Как мне автоматически получить мой файл?

Дополнительно я попытался зайти в настройки Chrome и выключить Попросить сохранить файл

Я запускаю скрипт на Windows 7 с Python 3.7 и Visual Studio и последней версией chromedriver

Невозможно автоматизировать мою загрузку?

1 Ответ

2 голосов
/ 29 марта 2019

Дополнительная информация о веб-странице , с которой вы пытаетесь загрузить файл xml , может быть полезна для устранения проблемы всплывающего окна с текстом в виде "Этот тип файла может нанести вред вашему компьютеру лучшим способом.

Однако вот пример программы для загрузки xml файла с этой веб-страницы :

  • Кодовый блок:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    prefs = {
    'download.default_directory': 'C:/Utility/Downloads/',
    'download.prompt_for_download': False,
    'download.extensions_to_open': 'xml',
    'safebrowsing.enabled': True
    }
    options = webdriver.ChromeOptions()
    options.add_experimental_option('prefs',prefs)
    options.add_argument("start-maximized")
    # options.add_argument("disable-infobars")
    options.add_argument("--disable-extensions")
    options.add_argument("--safebrowsing-disable-download-protection")
    options.add_argument("safebrowsing-disable-extension-blacklist")
    driver = webdriver.Chrome(options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
    driver.get("http://www.landxmlproject.org/file-cabinet")
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='MntnRoad.xml']//following::span[1]//a[text()='Download']"))).click()
    
  • Снимок браузера:

xml_download

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...