How do I set a proxy for firefox using Selenium webdriver with Java?

后端 未结 3 1062
旧巷少年郎
旧巷少年郎 2020-12-20 02:35
System.setProperty(\"webdriver.gecko.driver\", \"E:\\\\geckodriver-v0.18.0-win64\\\\geckodriver.exe\");
    Proxy p = new Proxy();
    p.setSocksProxy(\"83.209.94.87         


        
相关标签:
3条回答
  • 2020-12-20 03:12

    Because a bug you cannot use the Proxy object as of now. You should use the below code

        FirefoxProfile profile = new FirefoxProfile();
        profile.setPreference("network.proxy.type", 1);
        profile.setPreference("network.proxy.socks", "83.209.94.87");
        profile.setPreference("network.proxy.socks_port", 35923);
    
        FirefoxDriver driver = new FirefoxDriver(profile);
        driver.get("https://www.ipinfo.io");
    

    The bug is discussed on https://github.com/mozilla/geckodriver/issues/764 and you see what the Marionette driver do in background on below link

    https://dxr.mozilla.org/mozilla-central/source/testing/marionette/session.js#155

    So above code just replicates the same

    0 讨论(0)
  • 2020-12-20 03:12

    Work in Selenium 3.14.2, Firefox 62, C# .NET 4.5

    FirefoxDriverService service = FirefoxDriverService.CreateDefaultService(@"GeckoDriver19", "geckodriver.exe");
    service.FirefoxBinaryPath = @"C:\Program Files\Mozilla Firefox\firefox.exe";
    
    FirefoxOptions firefoxOptions = new FirefoxOptions();
    firefoxOptions.SetPreference("network.proxy.type", 1);
    firefoxOptions.SetPreference("network.proxy.socks", "127.0.0.1");
    firefoxOptions.SetPreference("network.proxy.socks_port", 1080);
    
    IWebDriver driver = new FirefoxDriver(service, firefoxOptions);
    
    driver.Navigate().GoToUrl("https://www.hbus.com/register");
    
    0 讨论(0)
  • 2020-12-20 03:29

    you can set proxy details with credentials here in your automation code as above answers explained but another way to do it without sharing your details in your java or python code with firefox profile.
    firefox provides profiles, we can create profile for every user and customize it for proxy ,bookmarks etc.
    windows user : open run(win+R) and type 'firefox -p'
    linux user : run command 'firefox -p'
    1- it will open a dialog box where you can create your profile then select that profile and open firefox.
    2- open a new tab and search 'about:config' .accept the Risk and Continue then click on show all
    3-here you can search and set all the property
    example:
    network.proxy.type   1
    1 for Manually
    2 for Automatic proxy
    for Manuall proxy -
    property                     value
    network.proxy.http              your proxy ip
    network.proxy.http_port               port number
    network.proxy.ssl               your proxy ip
    network.proxy.ssl_port               port number
    network.proxy.ftp               your proxy ip
    network.proxy.ftp_port               port number

    (to find your profile name )
    Linux : cd .mozilla/firefox/
    windows: Press. +R on the keyboard. A Run dialog will open. Type in: %APPDATA%\Mozilla\Firefox\Profiles\ Click OK. A window will open containing profile folders now load this profile in java code

    FirefoxOptions options = new FirefoxOptions();
    options.setUnhandledPromptBehaviour(UnexpectedAlertBehaviour.ACCEPT);
    FirefoxProfile profile=new FirefoxProfile(new File("path of your profile"));
    options.setProfile(profile);
    WebDriver driver = new FirefoxDriver(options);
    System.setProperty("webdriver.gecko.driver", "path of gecko driver");
    driver.get("url");
    
    0 讨论(0)
提交回复
热议问题