Безголовое тестирование браузера с функцией загрузки?
Я искал решение для проведения безголового тестирования в osx. Но мне нужна возможность сохранять файлы, возвращенные сервером.
Я протестировал selenium, phantomjs, casperjs и изучил все, что смог найти в интернете.
Ни один из них не поддерживает загрузку. я что-то упустил? существуют ли какие-либо безголовые браузерные / тестовые платформы, которые поддерживают загрузку?
3 ответа:
То, что вы можете сделать, это:
- запустите виртуальный дисплей (см. Xvfb )
- запустите
Firefox
браузер с настройками, настроенными на автоматическое сохранениеcsv
файловрабочий пример в python с дополнительными комментариями (используя pyvirtualdisplay
xvfb
обертка):from os import getcwd import time from pyvirtualdisplay import Display from selenium import webdriver # start the virtual display display = Display(visible=0, size=(800, 600)) display.start() # configure firefox profile to automatically save csv files in the current directory fp = webdriver.FirefoxProfile() fp.set_preference("browser.download.folderList", 2) fp.set_preference("browser.download.manager.showWhenStarting", False) fp.set_preference("browser.download.dir", getcwd()) fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv") browser = webdriver.Firefox(firefox_profile=fp) browser.get('http://www.nationale-loterij.be/nl/onze-spelen/lotto/resultaten') # check the option browser.find_element_by_id('corporatebody_3_corporategrid93961a8f9b424ed6bd0697df356d9483_1_rblType_0').click() # click the link browser.find_element_by_name('corporatebody_3$corporategrid93961a8f9b424ed6bd0697df356d9483_1$btnDownload').click() # hardcoded delay for waiting a file download (better check for the downloaded file to appear on the disk) time.sleep(2) # quit the browser browser.quit() # stop the display display.stop()
См. также: