Establecer el perfil de preferencia de descarga automática utilizando Selenium2library

Entorno: robotframework-selenium2library

Estoy buscando una forma en selenium2library para realizar la descarga automática del archivo configurando la preferencia en FirefoxProfile ya que esta es la solución que puedo encontrar. Sin embargo, parece que no puedo usar la forma en que se indica a continuación en Selenium Webdriver para importar el perfil de preferencias en el navegador en Selenium2library.

Utilizando Selenium 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",getcwd()) fp.set_preference("browser.helperApps.neverAsk.saveToDisk","application/msword, application/csv, application/ris, text/csv, image/png, application/pdf, text/html, text/plain, application/zip, application/x-zip, application/x-zip-compressed, application/download, application/octet-stream")
browser = webdriver.Firefox(firefox_profile=fp)

Puedo encontrar el open_browser () en selenium2library pero solo come un directorio en lugar de la flexibilidad de usar el perfil de preferencias como el webdriver de selenium.

Selenium2Biblioteca
open_browser(self, url, browser='firefox', alias=None,remote_url=False, desired_capabilities=None,ff_profile_dir=None)

¿Podría alguien arrojarme algo de luz sobre esto si puedo hacer lo mismo que el webdriver de selenium en robotframework-selenium2library?

Encontré un problema cerrado al hablar de esto en Github https://github.com/rtomac/robotframework-selenium2library/issues/18

Sin embargo, parece usar el directorio de perfiles en lugar de tener la flexibilidad para establecer la preferencia para el perfil de Firefox.

¡¡Gracias!!

Puedo encontrar el open_browser () en selenium2library pero solo come un directorio

No. También come preferencias. La larga historia es la siguiente:

No estoy muy seguro de cómo usa realmente robotframework-selenium2library. Yo diría que el uso común es ejecutar casos de prueba robotframework (es decir, archivos de texto UTF-8 simples) que importan selenium2library. Una posible solución a su problema tendría este aspecto (no hace falta decir que todas las variables deben definirse a continuación *** Variables *** ):

 *** Settings *** Library Selenium2Library Library Collections *** Variables *** *** Test Cases *** MyTestCase ${preferences} = Create Dictionary browser.download.folderList 2 browser.download.manager.showWhenStarting False # and so on .... Open Browser  desired_capabilities=${preferences} 

Sin embargo, su pregunta sugiere que tiene la intención de usar directamente las funciones de Python (como open_browser que mencionó en su pregunta) proporcionadas por selenium2library. En ese caso, todo lo que debe hacer es llamar a esa función con el parámetro desired_capabilities configurado correctamente.

Tenga en cuenta la documentación de ese parámetro (el código completo se encuentra aquí ):

Si especifica un valor para remoto, también puede especificar ‘wish_capabilities’, que es una cadena con el formato key1: val1, key2: val2, que se utilizará para especificar las capacidades deseadas en el servidor remoto. Esto es útil para hacer cosas como especificar un servidor proxy para Internet Explorer o para especificar el navegador y el sistema operativo si está utilizando saucelabs.com. ‘wish_capabilities’ también puede ser un diccionario (creado con ‘Crear diccionario’) para permitir configuraciones más complejas.