我如何使用 selenium webdriver 和浏览器 HtmlunitDriver 为 Java 设置代理?
How can i set proxy using selenium webdriver with browser HtmlunitDriver for Java?
我叫 Leo,我是一名 java 机器人开发人员,我正在使用 Selenium webdriver 和 Browser HtmlUnitDriver headless,我的问题就像我的标题所说:我知道如何使用 FirefoxDriver 设置代理,但我不知道不想使用 UI 浏览器,因为它执行起来太慢,所以,在 google 和另一个页面中搜索我没有发现任何类似的东西,如果有人知道如何打开 Url使用 HtmlUnitDriver 代理,请帮助您的回答对我有用,谢谢。
我正在为 FirefoxDriver 使用它,我想对 HtmlUnitDriver 做同样的事情。
org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy();
proxy.setHttpProxy("198.2.202.49:80")
.setFtpProxy("198.2.202.49:80")
.setSslProxy("198.2.202.49:80");
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.PROXY, proxy);
WebDriver driver = new FirefoxDriver(cap);
你可以试试下面的代码吗
HtmlUnitDriver driver = new HtmlUnitDriver(capabilities);
ArrayList<String> noProxyHosts = null;
driver.setHTTPProxy("198.2.202.49", 80, noProxyHosts);
这是我自己的问题的答案,我按照“@Raghav N”告诉我的方法做的,非常感谢! :D (y)
我这样做并且工作得很好,它可以被测试,因为打开 www.find-ip.net 并废弃了实际的代理活动,它和我放的一样。
这里的代码有效,如果你想测试它,复制并粘贴到你的项目中。
注意:使用 class 代理你需要 "import org.openqa.selenium.Proxy;"
HtmlUnitDriver driver = new HtmlUnitDriver();
Proxy proxy = new Proxy();
proxy.setHttpProxy("42.117.1.78:3128");
driver.setProxySettings(proxy);
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
driver.get("http://www.find-ip.net");
String ip = driver.findElement(By.xpath("//*[@id='ipbox']/div[1]/div[2]")).getText(); // Copia el texto del actual ip
String pais = driver.findElement(By.xpath("//*[@id='ipbox']/div[2]/div[2]")).getText(); //Copia el texto del actual Pais del proxy
System.out.println("» Ip Ficticio: " + ip +" - Country: " + pais);
输出:
Ip: 42.117.1.78 - Country: Viet Nam
如果页面未加载,可能是代理已关闭,请尝试使用另一个。
希望对您有所帮助,再见! :)
我叫 Leo,我是一名 java 机器人开发人员,我正在使用 Selenium webdriver 和 Browser HtmlUnitDriver headless,我的问题就像我的标题所说:我知道如何使用 FirefoxDriver 设置代理,但我不知道不想使用 UI 浏览器,因为它执行起来太慢,所以,在 google 和另一个页面中搜索我没有发现任何类似的东西,如果有人知道如何打开 Url使用 HtmlUnitDriver 代理,请帮助您的回答对我有用,谢谢。
我正在为 FirefoxDriver 使用它,我想对 HtmlUnitDriver 做同样的事情。
org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy();
proxy.setHttpProxy("198.2.202.49:80")
.setFtpProxy("198.2.202.49:80")
.setSslProxy("198.2.202.49:80");
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.PROXY, proxy);
WebDriver driver = new FirefoxDriver(cap);
你可以试试下面的代码吗
HtmlUnitDriver driver = new HtmlUnitDriver(capabilities);
ArrayList<String> noProxyHosts = null;
driver.setHTTPProxy("198.2.202.49", 80, noProxyHosts);
这是我自己的问题的答案,我按照“@Raghav N”告诉我的方法做的,非常感谢! :D (y)
我这样做并且工作得很好,它可以被测试,因为打开 www.find-ip.net 并废弃了实际的代理活动,它和我放的一样。
这里的代码有效,如果你想测试它,复制并粘贴到你的项目中。 注意:使用 class 代理你需要 "import org.openqa.selenium.Proxy;"
HtmlUnitDriver driver = new HtmlUnitDriver();
Proxy proxy = new Proxy();
proxy.setHttpProxy("42.117.1.78:3128");
driver.setProxySettings(proxy);
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
driver.get("http://www.find-ip.net");
String ip = driver.findElement(By.xpath("//*[@id='ipbox']/div[1]/div[2]")).getText(); // Copia el texto del actual ip
String pais = driver.findElement(By.xpath("//*[@id='ipbox']/div[2]/div[2]")).getText(); //Copia el texto del actual Pais del proxy
System.out.println("» Ip Ficticio: " + ip +" - Country: " + pais);
输出:
Ip: 42.117.1.78 - Country: Viet Nam
如果页面未加载,可能是代理已关闭,请尝试使用另一个。
希望对您有所帮助,再见! :)