Может ли кто-нибудь помочь мне Как проверить, загружен ли файл из браузера с помощью selenium2library, RobotFramework.In мой текущий тест я могу нажать кнопку загрузки, и файл загружается, но что произойдет, если файл не загрузится, а нажата кнопка. Любой пример кода полезен.Как проверить, загружен ли файл из браузера с помощью selenium2library
ответ
Проверить эту ссылку - 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);
В вашем ответе не должно быть ссылки на ваш блог. Существуют исключения, если вы ссылаетесь на определенную запись в блоге, которая имеет значение. Если вы хотите рекламировать свой блог, разместите его на странице своего профиля. –
@BryanOakley вы можете помочь мне в исправлении моего кода $ {preferences} = Создать словарь browser.download.folderList = 2 browser.download.dir = C:/Пользователи/mra001/Загрузки/Cambium_Builds открыть браузер $ {cnMaestro_URL} $ {Browser} wish_capabilities = $ {preferences} – Madhu
и можно использовать следующую функцию питона, чтобы загрузить файл без показа диалога коробка.
Также вы можете указать, какой тип файлов сохранить файл диалоговое окно не должно отображаться.
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
Что такое допустимый путь для передачи. Я пробовал 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
Я даю как C: \ \ temp. Он работает без каких-либо проблем. Убедитесь, что путь существует. –
В хроме я открываю chrome://downloads
страницу, а затем извлечь загруженный список файлов из теневой DOM так:
const docs = document
.querySelector('downloads-manager')
.shadowRoot.querySelector('#downloads-list')
.getElementsByTagName('downloads-item');
Это решение сдерживается в хроме, данные также содержит информацию, как путь к файлу и дата загрузки.
Selenium2Library обрабатывает только те вещи, которые происходят внутри браузера. Вы должны использовать библиотеку операционной системы, чтобы проверить, существует ли файл на диске. Возможно, используйте ключевое слово «Файл должно существовать» – Pekka
Спасибо @Pekka, любая возможность предоставить возможность автоматической загрузки в браузере в конкретный каталог – Madhu
Могу ли я знать, что ключевое слово «Файл должно существовать» независимо от платформы или нет? Мои тесты должны выполняться на платформах Linux и windows – Madhu