SeleniumLibrary 的 Open Browser 关键字接受一个 Selenium 选项对象。请在创建 Firefox 会话之前,把手动代理能力设置在该对象上:

*** Settings ***
Library         SeleniumLibrary
Test Teardown   Close All Browsers

*** Test Cases ***
Open Through Office Proxy
    &{route}=    Create Dictionary
    ...    proxyType=manual
    ...    httpProxy=proxy.example:8080
    ...    sslProxy=proxy.example:8080
    ${options}=    Evaluate    selenium.webdriver.FirefoxOptions()    modules=selenium.webdriver
    Call Method    ${options}    set_capability    proxy    ${route}
    Open Browser    https://www.example.com/    firefox    options=${options}

这项能力为 HTTP 和 HTTPS 分别使用不同的目标字段。当同一个 HTTP 代理既能做普通转发、又能承担所需的 HTTPS 隧道时,两个 host:port 值可以指向它。至于上面展示的公开页面,如果测试允许使用公共中间人且不需要代理账号,可以从 HTTP 代理列表中取一个可用的 HTTP 地址。

options 参数只对本次关键字创建的浏览器生效。把它和测试里的浏览器配置放在一起,会话才会以需要的路由启动。

示例把 Robot 内置的字典、求值和调用方法关键字与 Selenium 的 FirefoxOptions API 搭配使用。请替换示例中的端点与目标地址。如果某个套件已经有浏览器选项,就在传给 Open Browser 之前,把代理能力加到那个已有对象上。

相关文章