我叫 Leo,我是一名 Java 机器人开发人员,我正在使用 Selenium webdriver 和 Browser HtmlUnitDriver headless,我的问题就像我的标题所说:我知道如何使用 FirefoxDriver 设置代理,但我不想使用 UI 浏览器因为它执行起来太慢,所以,在谷歌和另一个页面中搜索我没有发现任何类似的东西,如果有人知道如何使用 HtmlUnitDriver 打开带有代理的 Url,请帮助你的答案对我有用,谢谢。
我正在将它用于 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);
最佳答案
这是我自己问题的答案,我按照“@Raghav N”告诉我的方法做了,非常感谢! :D (y)
我这样做并完美地工作,并且可以对其进行测试,因为打开 www.find-ip.net 并取消了实际代理 Activity ,并且它与我输入的相同。
这里的代码工作,如果你想测试它,复制并粘贴到你的项目中。 注意:对于类代理,您需要“导入 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
如果页面未加载,可能是代理已关闭,请尝试使用另一个。
希望对你有所帮助,再见! :)
关于java - 如何使用 selenium webdriver 和浏览器 HtmlunitDriver for Java 设置代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31353557/