Попытка получить регистрацию уровня TRACE от Geckodriver - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь получить информацию о трассировке из драйвера gecko, чтобы устранить некоторые проблемы, возникающие при переходе на более новые версии Python, Robot Framework, Selenium, Firefox.

См.в выводе робота DEBUG ниже я устанавливаю возможности для включения аргументов уровня журнала как часть moz: firefoxOptions.

Когда возможности распечатываются для Open Browser, значение moz: firefoxOptions было заменено наинформация о профиле, так что я никогда не получу набор трассировки.

20190219 13:07:22.461 - INFO - {'browserName': 'firefox', 'marionette': True, 'acceptInsecureCerts': True, 'moz:firefoxOptions': {'prefs': {'log': {'level': 'trace'}}, 'args': ['-headless', '-profile', '/tmp/tmpimda__f2']}, 'binary': '/usr/bin/firefox'}

20190219 13:07:22.461 - INFO - +--- END KW: BuiltIn.Log (1)

20190219 13:07:22.461 - INFO - +--- START KW: CustomLib.AdminClass.Open Browser [ ${LOGIN URL} | ${BROWSER} | desired_capabilities=${dc} | ff_profile_dir=${profile} ]

20190219 13:07:22.462 - INFO - Opening browser 'Firefox' to base url 'https://HOST:PORT/bmmadmin/login.jsp'.

20190219 13:07:22.480 - DEBUG - POST http://127.0.0.1:38132/session {"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "firefox", "acceptInsecureCerts": true, "moz:firefoxOptions": {"profile": "UEsDBBQAAAAIAOtoU04+3NKsfgMAAM0MAAAHAAAAdXNlci5qc6VWTW/UMBC98ytQTyCx1rbABU6lFAkJUcSq4mg59mTjrmMbe7zp/nvGyaYsbb6AWz7e89hvZt44RQjcByhfnBXBNfTGlKtZo61yDVOp9gysKAyos1fPMSR4+f5ZesoxAiGEZE/ApTBxBG2hQVGwFAzhzkThEr4rjLC7sym8F1tYtn5EETB5lhmEXE+jKlfDEblgL49Z3O3p5FoBqyM6266it9YFGFmAPqkb+6MVOJ6vmbYY3O33L9Phc1Jqcc9lFSgwjzJoj5wU56jrHPT1epiwDBnAu4BcGMPvIod7CR61s3Ew6XdiL7plmetgLFau+Wyv6NEZGCRZwMaFHZOCKHtY5XjCrAiw13ImrxFkChoPTMa+HEeAj5PTgJFZr9lSm2IyoZTO5xQzizRQqECHC1zIrCBPlNsUERSXEHBYzRNSjClHfCBp+gBhhtXpwa3IsnLYgx0JJLxnySvqVCYSumEFT0CLWk3p6I04gLo+X2++OqRcEuHNCNg11jihqDAtaRzasvlRgd1k9bXdTse6vv1yyfp2m7SjFvmadVmYsy5td1THYKnsycS6JF/MYcmSOo8cB7uyJPxIpfagAEJlZQBB0k4/6RDxkrSQI230YEOihPaZVFtoiqeMWphGhKV2CiLI6lgWc1BTxuRzc/f2PuajEGO2DiSnJBXayi/J27gMIlYzUSowhskK5O4jlCIZ/ND9mabRDImMjm1v7JVxceYoJ+gbyvgwmBQRnXdmVSsQBqvunS1ytgl+8rlVrv+R3Ucvc0F9T3+/feO22/xRdp7+F/vwzmh5YPnjJhW1bvP8v/xv7cfL3w09tAzs0TkTGTmEC8eNT15f8ugjB2sNtG1rRXPGbnlWfjhG9gjbFm5roh878kYSO7vu+XoUXhgnd0ZHnK6IE0Zb4Feu9mTthTZ5AFq9rdAcZqlLLPwp3JJ/l4fb0UY6GfxTqvajvnP51dEHVzRiMcXhlXtKhUjXtkrH6rDKvz3NxJUBu8VsCRdv3/5J65emqUX5MMY1vDhw1XnC4N48WYzHmLub104Js/DmUWoD9MRc0NQWvKvRfJmawUcMWiJ/TBsKlW+NlqywhrqAsGlfR+TKZb7TyI6y9eP0WMqDB+8pCIYiYDiwTor25Bdz2EmRnsID3LXjbHAn916T7VO2WD4y1QS5PzF+Jh3GIvymNJWmMLmLBhi/AFBLAQIUAxQAAAAIAOtoU04+3NKsfgMAAM0MAAAHAAAAAAAAAAAAAACkgQAAAAB1c2VyLmpzUEsFBgAAAAABAAEANQAAAKMDAAAAAA=="}}}, "desiredCapabilities": {"browserName": "firefox", "acceptInsecureCerts": true, "moz:firefoxOptions": {"profile": "UEsDBBQAAAAIAOtoU04+3NKsfgMAAM0MAAAHAAAAdXNlci5qc6VWTW/UMBC98ytQTyCx1rbABU6lFAkJUcSq4mg59mTjrmMbe7zp/nvGyaYsbb6AWz7e89hvZt44RQjcByhfnBXBNfTGlKtZo61yDVOp9gysKAyos1fPMSR4+f5ZesoxAiGEZE/ApTBxBG2hQVGwFAzhzkThEr4rjLC7sym8F1tYtn5EETB5lhmEXE+jKlfDEblgL49Z3O3p5FoBqyM6266it9YFGFmAPqkb+6MVOJ6vmbYY3O33L9Phc1Jqcc9lFSgwjzJoj5wU56jrHPT1epiwDBnAu4BcGMPvIod7CR61s3Ew6XdiL7plmetgLFau+Wyv6NEZGCRZwMaFHZOCKHtY5XjCrAiw13ImrxFkChoPTMa+HEeAj5PTgJFZr9lSm2IyoZTO5xQzizRQqECHC1zIrCBPlNsUERSXEHBYzRNSjClHfCBp+gBhhtXpwa3IsnLYgx0JJLxnySvqVCYSumEFT0CLWk3p6I04gLo+X2++OqRcEuHNCNg11jihqDAtaRzasvlRgd1k9bXdTse6vv1yyfp2m7SjFvmadVmYsy5td1THYKnsycS6JF/MYcmSOo8cB7uyJPxIpfagAEJlZQBB0k4/6RDxkrSQI230YEOihPaZVFtoiqeMWphGhKV2CiLI6lgWc1BTxuRzc/f2PuajEGO2DiSnJBXayi/J27gMIlYzUSowhskK5O4jlCIZ/ND9mabRDImMjm1v7JVxceYoJ+gbyvgwmBQRnXdmVSsQBqvunS1ytgl+8rlVrv+R3Ucvc0F9T3+/feO22/xRdp7+F/vwzmh5YPnjJhW1bvP8v/xv7cfL3w09tAzs0TkTGTmEC8eNT15f8ugjB2sNtG1rRXPGbnlWfjhG9gjbFm5roh878kYSO7vu+XoUXhgnd0ZHnK6IE0Zb4Feu9mTthTZ5AFq9rdAcZqlLLPwp3JJ/l4fb0UY6GfxTqvajvnP51dEHVzRiMcXhlXtKhUjXtkrH6rDKvz3NxJUBu8VsCRdv3/5J65emqUX5MMY1vDhw1XnC4N48WYzHmLub104Js/DmUWoD9MRc0NQWvKvRfJmawUcMWiJ/TBsKlW+NlqywhrqAsGlfR+TKZb7TyI6y9eP0WMqDB+8pCIYiYDiwTor25Bdz2EmRnsID3LXjbHAn916T7VO2WD4y1QS5PzF+Jh3GIvymNJWmMLmLBhi/AFBLAQIUAxQAAAAIAOtoU04+3NKsfgMAAM0MAAAHAAAAAAAAAAAAAACkgQAAAAB1c2VyLmpzUEsFBgAAAAABAAEANQAAAKMDAAAAAA=="}, "binary": "/usr/bin/firefox", "marionette": true}}

У кого-нибудь есть идеи, что я могу делать не так?И / ИЛИ какие-нибудь альтернативные способы получения журнала трассировки от geckodriver?

Кстати: moz: firefoxOptions, которые я устанавливаю, может быть неправильным, это просто последняя комбинация, которую я пробовал, но я не могурасскажите, что будет работать, пока параметры, которые я установил, не будут отправлены в Firefox.

Environment:

Python 3.6.3    
geckodriver 0.24.0 ( 2019-01-28)    
Mozilla Firefox 60.4.0

PIP:

requests (2.21.0)    
robotframework (3.1.1)    
robotframework-requests (0.5.0)    
robotframework-selenium2library (3.0.0)    
robotframework-seleniumlibrary (3.3.1)    
selenium (3.141.0)    
setuptools (40.8.0)    
urllib3 (1.24.1)


ROBOT:

Open Browser To Login Page
    ${dc}=    CustomLib.Get Desired Capabilities    ${BROWSER}    
    Set To Dictionary   ${dc}   
    ...                 binary                         ${PATH TO MARIONETTE}
    Log    ${dc}    
    ${profile}=    CustomLib.Create FF Profile
    Open Browser    ${LOGIN URL}    ${BROWSER}    desired_capabilities=${dc}    ff_profile_dir=${profile}


PYTHON:

@keyword
def get_desired_capabilities(browser):
        _capabilities = {'ff' : DesiredCapabilities.FIREFOX,
                    'firefox' : DesiredCapabilities.FIREFOX
                    } 

        browserKey = str(browser).lower()
        desired = _capabilities[browserKey]
        BuiltIn().log("get_desired_capabilities B4 :" + str(desired))
        #THIS IS ASSUMING FIREFOX
        desired['marionette'] = True
        desired['acceptSslCerts'] = True
        desired['ignoreProtectedModeSettings'] = True
        desired['headless'] = True
        desired['moz:webdriverClick'] = True
        desired['moz:firefoxOptions'] = {'log':{'level':'trace'}, 'args':['-headless']}
        #desired['moz:firefoxOptions']['log'] = {'level':'trace'}
        #desired['moz:firefoxOptions']['args'] = ['-headless']
        BuiltIn().log("get_desired_capabilities returning :" + str(desired))
        return desired

@keyword
def create_ff_download_profile(path):
        from selenium import webdriver
        BuiltIn().log('PATH: ' + path)
        fp = webdriver.FirefoxProfile()
        fp.set_preference("browser.download.folderList", 2)
        fp.set_preference("browser.download.manager.showWhenStarting", False)
        fp.set_preference("browser.helperApps.alwaysAsk.force", False);
        fp.set_preference("browser.helperApps.neverAsk.saveToDisk", 'text/xml,text/plain,application/octet-stream')
        fp.set_preference("browser.download.dir", path)      
        fp.update_preferences()     
        return fp.path

спасибо, Том

1 Ответ

0 голосов
/ 20 февраля 2019

Вот как я устанавливаю уровень журнала для трассировки в Firefox:

*** Settings ***
Library    SeleniumLibrary

*** Keywords ***
    ${options}=    Evaluate  sys.modules['selenium.webdriver.firefox.options'].Options()    sys
    ${options.log.level}=    Set Variable    trace
    ${driver}=    Create Webdriver    Firefox    options=${options}
    Go To    https://www.google.com

Он в основном следует этому шаблону питона из документов firefox и переводит его в Robotframework

Надеюсь, это поможет!

...