我在Create Webdriver中看到了Firefox代理的例子。但是,我不知道如何在Chrome上实现这一点。
编辑此问题以在我的机器中显示已安装软件包的版本:
答案 0 :(得分:3)
ChromeDriver
也支持使用预定义代理,但您必须将其指定为ChromeOptions
对象中的命令行参数,您可以在创建ChromeDriver
时传递该参数。请参阅此答案,了解如何在python中执行此操作,例如:https://stackoverflow.com/a/11821751/7433999
当使用Selenium2Library和Create Webdriver
关键字时,如果您以正确的形式构造chrome_options
字典,并将其传递给关键字,则应该可以实现相同的效果。
这样的事情可行:
${args}= | Create List | --proxy-server=1.2.3.4:8080
${chrome_options}= | Create Dictionary | args=${args}
Create WebDriver | Chrome | chrome_options=${chrome_options}
答案 1 :(得分:1)
要在 RobotFramework 中使用 ChromeOptions,您可能需要执行以下操作:
在./project_root/my_library.py
from typing import Union
from selenium.webdriver.chrome.options import Options
def Get_Proxy_Option(url: str, port: Union[int, str]) -> Options:
options = Options()
options.add_argument(f"--proxy-server={url}:{port}")
return options
在./project_root/my_testcase.robot
*** Settings ***
Library SeleniumLibrary
Library ./my_library.py
*** Keywords ***
Open Browser With Proxy
[Arguments] ${browser_url} ${proxy_url}=url.to.proxy ${proxy_port}=8080
${options}= Get_Proxy_Options @{ext_paths} url=${proxy_url} port=${proxy_port}
Open Browser ${url} Chrome options=${options}