Загрузка Selenium-python, но файл сохраняется как .part

Мой скрипт работает, но он сохраняет файл как .part, хотя проверяет его на файл, загруженный вручную, на тот же размер и, к счастью, завершен. Я не могу понять, почему он сохраняется как частичный файл. Сорта неудобна для моей следующей идеи. У кого-нибудь есть представление, почему это может быть? Вот мой код … который работает …

from selenium import webdriver from selenium.common.exceptions import NoSuchElementException from selenium.webdriver.common.keys import Keys import time import mechanize import urllib from urllib import urlretrieve fp = webdriver.FirefoxProfile() fp.set_preference("browser.download.folderList",1) fp.set_preference("browser.download.manager.showWhenStarting",False) fp.set_preference("browser.download.dir",'Users/matthewyoung/Downloads') fp.set_preference("browser.helperApps.neverAsk.saveToDisk","Plain text") fp.set_preference("browser.download.manager.scanWhenDone",False) fp.set_preference("browser.download.manager.showAlertOnComplete",True) fp.set_preference("browser.download.manager.useWindow",False) fp.set_preference("browser.helperApps.alwaysAsk.force",False) browser = webdriver.Firefox(firefox_profile=fp) #browser = webdriver.Firefox() # Get local session of firefox browser.get("http://vizier.u-strasbg.fr/vizier/surveys.htx") # Load page assert "VizieR" in browser.title #p = raw_input('Star name? ') elem = browser.find_element_by_name('-c') # Find the query box elem.send_keys('mwc 560' + Keys.RETURN) time.sleep(0.2) # Let the page load, will be added to the API elem=browser.find_element_by_name('-out.max') elem.send_keys('unlimited'+Keys.TAB) elem2=browser.find_element_by_name('-out.form') time.sleep(0.5) elem2.send_keys('; -Separated-Values') time.sleep(0.5) elem2.send_keys(Keys.TAB) elem2.send_keys(Keys.TAB) time.sleep(0.2) browser.find_element_by_class_name('data').submit() time.sleep(3.0) #df=elem2.send_keys(Keys.SPACE) #print df browser.close() 

3 Solutions collect form web for “Загрузка Selenium-python, но файл сохраняется как .part”

Он загружается как .part, потому что появляется всплывающее окно в виде диалогового окна. Python не может работать со всплывающим окном. Я обнаружил, что при попытке установить настройки для настраиваемого профиля в webdriver он не обязательно работает (например, я смог установить настраиваемый профиль в selenium для загрузки csv, но не pdf). Тем не менее, я смог решить мою проблему с pdf, создав настраиваемый профиль в firefox. Я не очень опытен с tsv-файлами, поэтому я не уверен, какой настрой был бы. Если вы можете создать новый профиль firefox (следуя инструкциям здесь: https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles ), вы можете попытаться установить это для сохранения tsv по умолчанию. Если вы не знаете точную настройку, чтобы войти и изменить «about: config», вы можете попробовать просто щелкнуть по флажку всплывающего окна, чтобы всегда сохранять эти файлы.

Оттуда вы настраиваете свой профиль на тот настраиваемый профиль, который вы создали следующим образом:

  profile = webdriver.firefox.firefox_profile.FirefoxProfile("/Users/matthewyoung/Library/Application Support/Firefox/Profiles/"YOUR PROFILE NAME") 

Имейте в виду, что у ВАШЕГО ПРОФИЛЬНОГО ИМЯ сначала будет куча случайных букв, поэтому следуйте по этому пути, чтобы найти фактическое имя профиля.

Я думаю, что единственное, что вам не хватает в настройках вашего профиля Firefox, – это следующее

 fp.set_preference("browser.helperApps.neverAsk.openFile", 'Plain Text') 

Таким образом, весь код должен быть

 from selenium import webdriver from selenium.common.exceptions import NoSuchElementException from selenium.webdriver.common.keys import Keys import time fp = webdriver.FirefoxProfile() fp.set_preference("browser.download.folderList",2) fp.set_preference("browser.download.manager.showWhenStarting",False) fp.set_preference("browser.download.dir",'Users/matthewyoung/Downloads') fp.set_preference("browser.helperApps.neverAsk.openFile", 'Plain Text') fp.set_preference("browser.helperApps.neverAsk.saveToDisk","Plain text") fp.set_preference("browser.download.manager.scanWhenDone",False) fp.set_preference("browser.download.manager.showAlertOnComplete",True) fp.set_preference("browser.download.manager.useWindow",False) fp.set_preference("browser.helperApps.alwaysAsk.force",False) browser = webdriver.Firefox(firefox_profile=fp) browser.get("http://vizier.u-strasbg.fr/vizier/surveys.htx") # Load page assert "VizieR" in browser.title elem = browser.find_element_by_name('-c') # Find the query box elem.send_keys('mwc 560' + Keys.RETURN) time.sleep(0.2) # Let the page load, will be added to the API elem=browser.find_element_by_name('-out.max') elem.send_keys('unlimited'+Keys.TAB) elem2=browser.find_element_by_name('-out.form') time.sleep(0.5) elem2.send_keys('; -Separated-Values') time.sleep(0.5) elem2.send_keys(Keys.TAB) elem2.send_keys(Keys.TAB) time.sleep(0.2) browser.find_element_by_class_name('data').submit() time.sleep(3.0) browser.close() 

Для обычного текста должно использоваться следующее значение:

 fp.set_preference("browser.helperApps.neverAsk.saveToDisk","text/plain") 
  • Может ли ключевое слово robot framework выполняться в консоли python?
  • Python selenium, как я могу удалить элемент?
  • Как обнаружить, когда тест теста pytest не удался?
  • Селен: Закройте скрипт Python без закрытия браузера
  • Как прокрутить страницу до конца страницы, используя селен в python
  • NoSuchElementException при попытке использования Selenium Python
  • Как правильно использовать find_element_by_link_text (), чтобы не поднимать NoSuchElementException?
  • Загрузите фотографию в selenium python, когда вход в файл не отображается
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.