1

我为 Firefox 创建了一个新的配置文件,以与 Robot Framework SeleniumLibrary 一起使用。但是,配置文件未使用以下内容加载

*** Settings ***
Library    SeleniumLibrary

*** Keywords ***
Just testing
    Open Browser    about:blank    Firefox    ff_profile_dir=C:${/}Users${/}Administrator${/}AppData${/}Roaming${/}Mozilla${/}Firefox${/}Profiles${/}dev

*** Test Cases ***
Just testing

使用哪个配置文件可以从页面about:profiles中看到

但是,在 webdriver 启动的浏览器上检查 about:profiles 时,配置文件未标记为正在使用:在 Webdriver 启动的浏览器上的 page about:profiles

任何想法为什么没有加载 Firefox 配置文件?编辑:我如何确定配置文件是否已加载?

查看 geckodriver 日志,目录似乎完全不同

mozrunner::runner INFO Running command: "C:\\Program Files\\Mozilla Firefox\\firefox.exe" "-marionette" "-foreground" "-no-remote" "-profile" "C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\2\\rust_mozprofile2iM6KC"

我创建单独配置文件的原因是在启动自动化测试套件时使用 AutoAuth 扩展绕过 NTLM 身份验证。

SeleniumLibrary 4.0.0 机器人框架 3.1.2(win32 上的 Python 3.7.4)Firefox 69.0.3

4

1 回答 1

0

我查看了我的自定义关键字来设置 Firefox 配置文件:

from robot.api import logger
from selenium.webdriver import FirefoxProfile

class SeleniumPyExtension:

    @staticmethod
    def setup_firefox_profile(download_dir):
        profile = FirefoxProfile()
        logger.info('Download dir is {}'.format(download_dir))
        profile.set_preference("browser.download.dir", download_dir)
        profile.set_preference("browser.download.folderList", 2)
        profile.set_preference(
            'browser.helperApps.neverAsk.saveToDisk',
            'image/jpeg;'\
            'application/vnd.ms-excel;'\
            'application/octet-stream;'\
            'application/pdf;'\
            'application/ogg;'\
            'audio/mpeg;'
        )
        profile.set_preference("pdfjs.disabled", True)
        profile.update_preferences()
        profile_dir = profile.profile_dir
        logger.info('Profile is located at {}'.format(profile_dir))
        return profile_dir

并检查了它创建的内容,发现它仅使用此处描述user.js的一堆创建目录。user_pref(...)

于 2019-10-17T15:04:48.873 回答