具有下载功能的无头浏览器测试?
Headless browser testing with download functionality?
我一直在寻找在 osx 中进行无头测试的解决方案。但是我需要能够保存服务器返回的文件。
我已经测试了 selenium、phantomjs、casperjs 并研究了我可以在网上找到的任何东西。
none个支持下载。我错过了什么吗?是否有支持下载的无头 browser/testing 框架?
我使用 on OSX selenium + wget 命令来执行下载。
这是一个代码示例:
new_driver = webdriver.Firefox()
new_driver.get(url)
for element in new_driver.find_elements_by_tag_name('img'):
os.system('wget ' + element.get_attribute('src').rstrip('\n'))
您可以做的是:
- 开始虚拟显示(参见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()
另请参阅:
- How do I run Selenium in Xvfb?
- Access to file download dialog in Firefox
我一直在寻找在 osx 中进行无头测试的解决方案。但是我需要能够保存服务器返回的文件。
我已经测试了 selenium、phantomjs、casperjs 并研究了我可以在网上找到的任何东西。
none个支持下载。我错过了什么吗?是否有支持下载的无头 browser/testing 框架?
我使用 on OSX selenium + wget 命令来执行下载。
这是一个代码示例:
new_driver = webdriver.Firefox()
new_driver.get(url)
for element in new_driver.find_elements_by_tag_name('img'):
os.system('wget ' + element.get_attribute('src').rstrip('\n'))
您可以做的是:
- 开始虚拟显示(参见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()
另请参阅:
- How do I run Selenium in Xvfb?
- Access to file download dialog in Firefox