2016-05-26 3 views
1

Может ли кто-нибудь помочь мне Как проверить, загружен ли файл из браузера с помощью selenium2library, RobotFramework.In мой текущий тест я могу нажать кнопку загрузки, и файл загружается, но что произойдет, если файл не загрузится, а нажата кнопка. Любой пример кода полезен.Как проверить, загружен ли файл из браузера с помощью selenium2library

+1

Selenium2Library обрабатывает только те вещи, которые происходят внутри браузера. Вы должны использовать библиотеку операционной системы, чтобы проверить, существует ли файл на диске. Возможно, используйте ключевое слово «Файл должно существовать» – Pekka

+0

Спасибо @Pekka, любая возможность предоставить возможность автоматической загрузки в браузере в конкретный каталог – Madhu

+0

Могу ли я знать, что ключевое слово «Файл должно существовать» независимо от платформы или нет? Мои тесты должны выполняться на платформах Linux и windows – Madhu

ответ

1

Проверить эту ссылку - http://ardesco.lazerycode.com/testing/webdriver/2012/07/25/how-to-download-files-with-selenium-and-why-you-shouldnt.html

Кроме того, вот как вы можете автоматически загрузить файл в определенную директорию -

FirefoxProfile profile = new FirefoxProfile(); 
profile.SetPreference("browser.download.folderList",2); 
profile.SetPreference("browser.download.dir", @"c:\path\to\downloads \folder"); 
FirefoxDriver driver = new FirefoxDriver(profile); 
+0

В вашем ответе не должно быть ссылки на ваш блог. Существуют исключения, если вы ссылаетесь на определенную запись в блоге, которая имеет значение. Если вы хотите рекламировать свой блог, разместите его на странице своего профиля. –

+0

@BryanOakley вы можете помочь мне в исправлении моего кода $ {preferences} = Создать словарь browser.download.folderList = 2 browser.download.dir = C:/Пользователи/mra001/Загрузки/Cambium_Builds открыть браузер $ {cnMaestro_URL} $ {Browser} wish_capabilities = $ {preferences} – Madhu

0

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

Также вы можете указать, какой тип файлов сохранить файл диалоговое окно не должно отображаться.

def create_profile(): 
    from selenium import webdriver 
    fp =webdriver.FirefoxProfile() 
    fp.set_preference("browser.download.folderList",2) 
    fp.set_preference("browser.download.manager.showWhenStarting",False) 
    fp.set_preference("browser.download.dir",'C:/Users/mra001/Downloads/Cambium_Builds') 
    fp.set_preference("browser.helperApps.neverAsk.saveToDisk",'text/csv/xls') 
    fp.update_preferences() 
    return fp.path 
+0

Что такое допустимый путь для передачи. Я пробовал c: \\ Пользователи \\ mra001 и c: /Users/mra001..Все случаи я получаю ошибку, как показано ниже 'WebDriverException: Сообщение: целевой URL-адрес create_profile не является корректным. Stacktrace: в FirefoxDriver.prototype.get (файл: /// c:/users/mra001/appdata/local/temp/tmpgb0b3o/webdriver-py-profilecopy/extensions/ [email protected]/components/driver- component.js: 10636) at DelayedCommand.prototype.executeInternal_/h (файл: /// c:/users/mra001/appdata/local/temp/tmpgb0b3o/webdriver-py-profile ' – Madhu

+0

Я даю как C: \ \ temp. Он работает без каких-либо проблем. Убедитесь, что путь существует. –

5

В хроме я открываю chrome://downloads страницу, а затем извлечь загруженный список файлов из теневой DOM так:

const docs = document 
    .querySelector('downloads-manager') 
    .shadowRoot.querySelector('#downloads-list') 
    .getElementsByTagName('downloads-item'); 

Это решение сдерживается в хроме, данные также содержит информацию, как путь к файлу и дата загрузки.

 Смежные вопросы

  • Нет связанных вопросов^_^