Как автоматически загрузить файл pdf в браузере Chrome с помощью Robot Framework

В рамках своего теста я хочу автоматически загружать PDF-файл из браузера, как только он загружается в браузере. Может ли кто-нибудь посоветовать мне, как этого можно достичь. Следую этому способу, который я пробовал. Я пытался нажать кнопку загрузки, но у меня это не сработало. Ниже приведен снимок экрана, отображаемый в браузере.  введите описание изображения здесь

*** Test Cases ***

    Download and deploy content package 

        ${output}=   Run keyword   job history
        Log to console   ${output}
        # 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
        ${prefs}    Create Dictionary    prompt_for_download=false  download.default_directory=${download directory}    
        Call Method    ${chrome options}    add_experimental_option    prefs    ${prefs}
        Create Webdriver    Chrome    chrome_options=${chrome options}
        Goto   ${output}   
        Sleep       5

person Auto-learner    schedule 24.05.2017    source источник


Ответы (2)


У меня есть довольно простой способ обхода загрузки файлов. В нем действуют следующие правила:

  • Создать папку загрузки в настройке пакета

    Set Global Variable    ${global_downloadDir}    ${CURDIR}\\Downloads\\${suite_orgName}
    ${chromeOptions}=    Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
    ${prefs} =    Create Dictionary    download.default_directory=${global_downloadDir}
    Call Method    ${chromeOptions}    add_experimental_option    prefs    ${prefs}
    Create Webdriver    Chrome    chrome_options=${chromeOptions}
    
  • Очистить папку при тестовой разборке

    Run Keyword And Ignore Error    Empty Directory    ${global_downloadDir}
    

    С помощью вышесказанного вы легко сможете манипулировать загруженными файлами.

person Lubos Jerabek    schedule 25.05.2017
comment
Спасибо @Lubos, ваш ответ мне помог - person Auto-learner; 29.05.2017
comment
Вышеуказанная конфигурация не работает для меня, мне пришлось немного ее изменить, пожалуйста, проверьте здесь. groups.google.com/d/msg/robotframework-users/ Jo1lzODNhXw / В заключение обратите внимание на использование переменной $ {TRUE}. - person Sariq Shaikh; 24.09.2018

Хотя приведенный выше ответ хорош, но для меня сработал следующий код.

Conference Summary
     ${output}=   Run keyword   SLO conformance summary
    # create unique folder in current directory
    ${current_date}=    Get Current Date 
    ${folder_name} =    Convert Date    ${current_date}    result_format=${SUITE NAME}.%d.%m.%Y_%H.%M
    ${download directory}    Join Path    ${OUTPUT DIR}    ${folder_name}
    Create Directory    ${download directory}
    ${options}  Evaluate  sys.modules['selenium.webdriver'].ChromeOptions()  sys, selenium.webdriver
    Call Method  ${options}  add_argument  --start-maximized
    ${preferences} =    Create Dictionary   prompt_for_download=false  download.default_directory=${download directory}    download.directory_update=True
    Call Method  ${options}  add_experimental_option  prefs  ${preferences}
     Create WebDriver  Chrome  chrome_options=${options} 
    Go To    ${output}     
    sleep   4
    Page Should Not Contain Element  //div[@class='errorIcon']
    Run Keyword     Get export position
person Auto-learner    schedule 29.05.2017