python - RobotFramework - 通过 Open Browser 关键字添加 chrome 扩展

标签 python selenium google-chrome robotframework

我正在尝试向机器人框架添加一个 chrome 扩展。我正在使用关键字 Open Browser(通过添加 desired_capabilities),但是当我运行这段代码时,没有添加任何扩展(但没有发生错误)。我检查了 crx 文件的路径,它应该是正确的。

*** Settings ***
Library           SeleniumLibrary
Library           Process
Library           Collections
Suite Teardown    Close Browser   

***Variables***
${BROWSER}                  Chrome
${SELENIUM}                 http://hub:4444/wd/hub

*** Test Cases ***
Open Chrome with extension

    ${options} =        Create List          add_extension   ${CURDIR}/office-extension.crx
    ${arguments} =      Create Dictionary    args=${options}
    ${capabilities} =   Create Dictionary    chromeOptions=${arguments}

    Open Browser    chrome://extensions/    remote_url=${SELENIUM}    browser=${BROWSER}    desired_capabilities=${capabilities}
    Capture Page Screenshot

最佳答案

这对我有用:

   *** Test Cases ***
Open Chrome with extension
    ${ChromeOptions} =     Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
    Call Method    ${ChromeOptions}    add_argument    remote-debugging-port\=9222
    Call Method    ${ChromeOptions}    add_argument    ${args}
    Call Method    ${ChromeOptions}    add_extension    ${EXECDIR}${/}Resources${/}BrowserAddons${/}test1.crx
    ${Options}=     Call Method         ${ChromeOptions}    to_capabilities      
    Create Webdriver    Chrome          desired_capabilities=${Options} 
    Go to     about:blank
    Maximize Browser Window

这里用open Browser关键字

Open Chrome with extension
    ${ChromeOptions} =     Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
    Call Method    ${ChromeOptions}    add_argument    remote-debugging-port\=9222
    Call Method    ${ChromeOptions}    add_argument    ${args}
    Call Method    ${ChromeOptions}    add_extension    ${EXECDIR}{/}test1.crx
    ${Options}=     Call Method         ${ChromeOptions}    to_capabilities      
    Open Browser    about:blank   Chrome            desired_capabilities=${Options}
    Maximize Browser Window

您不必使用 remote-debugging-port\=9222,这是我必须做的事情,否则 chrome 不会。

关于python - RobotFramework - 通过 Open Browser 关键字添加 chrome 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56584420/

相关文章:

javascript - Selenium 。 HtmlUnitDriver。如何启用 JavaScript 和 Cookie?

javascript - JS : Bookmarklet - Create a bookmarklet that fires a local js file to fill up fields in a form of the current page

Chrome 的 Javascript/JQuery 事件阻止不安全内容

python - 展平嵌套的 Pandas 数据框

Python:将 JSON 对象转换为 JSON 数组

python - 使用 selenium 登录网页

Selenium Webdriver - 在 If 语句中使用 isDisplayed() 不起作用

javascript - jquery 焦点回到相同的输入字段,错误不适用于所有浏览器

python - 为什么Python中的这段代码比C++快得多?

python - 带有 MIME 附件的 HTTP POST 请求和 header multipart/related 和 xop?