![](/img/trans.png)
[英]How can i set proxy using selenium webdriver with browser HtmlunitDriver for Java?
[英]How do I set a proxy for firefox using Selenium webdriver with Java?
System.setProperty("webdriver.gecko.driver", "E:\\geckodriver-v0.18.0-win64\\geckodriver.exe");
Proxy p = new Proxy();
p.setSocksProxy("83.209.94.87:35923");
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.PROXY, p);
WebDriver driver = new FirefoxDriver(cap);
driver.get("https://www.google.com.au");
这段代码在 main 方法中。 当我运行此代码时,会启动 firefox,但未遵循 google url,并且代理未设置为我在上面的代码中指定的代理。 我怎样才能解决这个问题?
public static void main(String[] args) throws InterruptedException, IOException, UnsupportedEncodingException {
while (true) {
System.setProperty("webdriver.gecko.driver", "E:\\geckodriver-v0.18.0-win64\\geckodriver.exe");
WebDriver driver;
String PROXY = "83.209.94.87:35923";
//Bellow given syntaxes will set browser proxy settings using DesiredCapabilities.
Proxy proxy = new Proxy();
proxy.setAutodetect(false);
proxy.setProxyType(Proxy.ProxyType.MANUAL);
proxy.setSocksProxy(PROXY);
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.PROXY, proxy);
//Use Capabilities when launch browser driver Instance.
driver = new FirefoxDriver(cap);`
因为一个错误,你现在不能使用 Proxy 对象。 你应该使用下面的代码
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");
该错误在https://github.com/mozilla/geckodriver/issues/764上讨论,您可以在以下链接中看到 Marionette 驱动程序在后台执行的操作
https://dxr.mozilla.org/mozilla-central/source/testing/marionette/session.js#155
所以上面的代码只是复制了相同的
在 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");
您可以在自动化代码中使用凭据设置代理详细信息,如上述答案所述,但另一种方法是无需在您的 java 或 python 代码中与 firefox 配置文件共享您的详细信息。
firefox 提供配置文件,我们可以为每个用户创建配置文件,并为代理、书签等自定义它。
windows用户:打开运行(win+R)并输入'firefox -p'
linux 用户:运行命令“firefox -p”
1- 它将打开一个对话框,您可以在其中创建您的配置文件,然后选择该配置文件并打开 Firefox。
2-打开一个新选项卡并搜索“about:config”。接受风险并继续,然后单击“全部显示”
3-在这里您可以搜索和设置所有属性
例子:
network.proxy.type 1
1 为手动
2 为自动代理
对于手动代理 -
财产价值
network.proxy.http 你的代理ip
network.proxy.http_port 端口号
network.proxy.ssl 你的代理ip
network.proxy.ssl_port 端口号
network.proxy.ftp 你的代理ip
network.proxy.ftp_port 端口号
(查找您的个人资料名称)
Linux : cd .mozilla/firefox/
窗户:按。 键盘上的 +R。 将打开一个运行对话框。 输入:%APPDATA%\\Mozilla\\Firefox\\Profiles\\ 单击确定。 将打开一个包含配置文件文件夹的窗口,现在在 Java 代码中加载此配置文件
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");
使用 Java-Selenium 4.1.1 版,以下代码适用于我:
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
...
Proxy proxy = new Proxy();
proxy.setHttpProxy("myproxy:80");
proxy.setSslProxy("myproxy:80");
FirefoxOptions firefoxOptions = new FirefoxOptions();
firefoxOptions.setProxy(proxy);
WebDriver driver = new FirefoxDriver(firefoxOptions);
如果您愿意,可以将所有内容都放在一行中:
WebDriver driver = new FirefoxDriver(new FirefoxOptions().setProxy(new Proxy().setHttpProxy("myproxy:80").setSslProxy("myproxy:80")));
有关更多代理设置,请参阅: Selenium 代理 API
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.