在java selenium中启动chromedriver后更改代理

在java selenium中启动chromedriver后更改代理,java,selenium,selenium-webdriver,proxy,webdriver,Java,Selenium,Selenium Webdriver,Proxy,Webdriver,在同一浏览器上启动chromedriver后是否可以使用代理 例: 我启动了chrome驱动程序 加载网站 输入信息 使用代理 单击提交 我想我在python和JS中找到了一些方法,但我不确定如何将其转换为java,你可以使用ChromeOptions类 You can create an instance of ChromeOptions, which has convenient methods for setting ChromeDriver-specific capabilities.

在同一浏览器上启动chromedriver后是否可以使用代理

例:

  • 我启动了chrome驱动程序
  • 加载网站
  • 输入信息
  • 使用代理
  • 单击提交

  • 我想我在python和JS中找到了一些方法,但我不确定如何将其转换为java,你可以使用ChromeOptions类

    You can create an instance of ChromeOptions, which has convenient methods for setting ChromeDriver-specific capabilities. You can then pass the ChromeOptions 
    
    object into the ChromeDriver constructor:
    ChromeOptions options = new ChromeOptions();
    options.addExtensions(new File("/path/to/extension.crx"));
    ChromeDriver driver = new ChromeDriver(options);
    
    
    
    ChromeOptions options = new ChromeOptions();
    // Add the WebDriver proxy capability.
    Proxy proxy = new Proxy();
    proxy.setHttpProxy("myhttpproxy:3337");
    options.setCapability("proxy", proxy);
    
    // Add a ChromeDriver-specific capability.
    options.addExtensions(new File("/path/to/extension.crx"));
    ChromeDriver driver = new ChromeDriver(options);
    
    根据的当前实现,一旦使用所需的选项和功能配置WebDriver实例,并初始化WebDriver会话以打开Web浏览器,则无法更改运行时的功能。即使您能够检索到运行时功能,您仍然无法将其更改回来

    因此,为了使用代理,您必须启动一个新的WebDriver会话

    以下是与代理设置功能相关的@JimEvans(截至2013年10月24日13:02):

    为任何给定驱动程序设置代理时,仅在创建WebDriver会话时设置代理;它不能在运行时更改。即使您获得了所创建会话的功能,也无法更改它。因此,答案是,不,如果要使用不同的代理设置,必须启动新会话


    您可以在

    中找到相关讨论,感谢您的快速回复,但这不会打开新浏览器吗?我想在同一个驱动程序和页面上继续,因为当我单击“提交”时,网站会检查ip,如果它被使用,他们会禁止它,我只需要在单击“提交”时使用代理,但如果我使用代理启动驱动程序,每个任务会运行10Mb的数据,因此如果我能够在单击“提交”之前使用代理,那么它会保存大量数据。