2016-02-09 21 views
7

Robot Çerçevesini kullanıyorum.Robot Çerçevesi İndirme Dosyası

Benim HTML sayfamda basit bir düğme var. Tıkladığınızda, bir pdf dosyası indirir.

Dosya indirildiyse Robot Framework ile nasıl kontrol edebilirim? Çözelti çok tarayıcı özgüdür

${SERVER}     ${SERVER_DEV} 
${NAME}     Robot 
${FILE_NAME}    Robot.pdf 
${CLASS_NAME}    in 
${DOWNLOAD_DIRECTORY}  C:\\robot_download 

Scenario: User can download 
    Create Directory ${DOWNLOAD_DIRECTORY} 
    ${CHROME_OPTIONS}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver 
    ${disabled} Create List  Chrome PDF Viewer 
    ${prefs} Create Dictionary download.default_directory=${DOWNLOAD_DIRECTORY} plugins.plugins_disabled=${disabled} 
    Call Method ${CHROME_OPTIONS} add_experimental_option prefs ${prefs} 
    Create Webdriver Chrome chrome_options=${CHROME_OPTIONS} 
    Goto ${SERVER} 
    Click Element ${NAME} 
    Wait Until Element Is Visible css=div.${CLASS_NAME} 8 
    Page Should Contain ${NAME} 
    Set Selenium Speed 10s 
    Download PDF ${NAME} 
    File Should Exist C:\\robot_download\\${FILE_NAME} 
+0

Hangi tarayıcıyı kullanıyorsunuz? – ombre42

+0

Chrome kullanıyorum. – Raphael

cevap

10

:

Tks I ombre42 @ için bir çözüm, TKS bulundu. Chrome için Chrome'a ​​dosya indirebileceğini söyleyebilirsin. Yeni bir klasör seçmek, indirme durumunun izlenmesini sağlar. Ayrıca, bir PDF indirdiğiniz için, PDF eklentisinin indirilmesi, PDF'nin indirilmek yerine görüntülenmesini önlemek için gereklidir. İşte makinemde basit bir sayfa ve PDF dosyası kullanarak çalışan bir test. download.html ait

*** Settings *** 
Test Teardown  Close All Browsers 
Library   Selenium2Library 
Library   OperatingSystem 

*** Test Cases *** 
Download PDF 
    # create unique folder 
    ${now} Get Time epoch 
    ${download directory} Join Path ${OUTPUT DIR} downloads_${now} 
    Create Directory ${download directory} 
    ${chrome options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver 
    # list of plugins to disable. disabling PDF Viewer is necessary so that PDFs are saved rather than displayed 
    ${disabled} Create List Chrome PDF Viewer 
    ${prefs} Create Dictionary download.default_directory=${download directory} plugins.plugins_disabled=${disabled} 
    Call Method ${chrome options} add_experimental_option prefs ${prefs} 
    Create Webdriver Chrome chrome_options=${chrome options} 
    Goto http://localhost/download.html 
    Click Link link # downloads a file 
    # wait for download to finish 
    ${file} Wait Until Keyword Succeeds 1 min 2 sec Download should be done ${download directory} 

*** Keywords *** 
Download should be done 
    [Arguments] ${directory} 
    [Documentation] Verifies that the directory has only one folder and it is not a temp file. 
    ... 
    ... Returns path to the file 
    ${files} List Files In Directory ${directory} 
    Length Should Be ${files} 1 Should be only one file in the download folder 
    Should Not Match Regexp ${files[0]} (?i).*\\.tmp Chrome is still downloading a file 
    ${file} Join Path ${directory} ${files[0]} 
    Log File was successfully downloaded to ${file} 
    [Return] ${file} 

İçindekiler: - indirmek öncesi ve indirildikten sonra

<html><body><a href="file.pdf" id="link">Click Here</a></body></html> 
+0

IE bunu yapmak mümkün mü? – user2520217

0

Dosyanın MD5 kontrol etmeniz gerekir. Her iki MD5 de aynı olmalıdır.

varsayarsak dosya Linux makine üzerinde - öncesi ve indirildikten sonra: # md5sum PATH_TO_FILE

  • Mağaza bir değişkene çıkışı:

    1. Girişi SSH kütüphanesi
    2. Çalıştır komutunu kullanarak linux makineye.
    3. yüzden bu bilgiler yararlı olmuştur değişken değerini

    Umut karşılaştırın.