gpt4 book ai didi

java - 如何在selenium中设置chrome代理: Java

转载 作者:行者123 更新时间:2023-12-02 02:41:48 28 4
gpt4 key购买 nike

我已经为 PhantomJS 设置了代理并使用下面的代码验证了 IP 地址。效果很好。

这里的主机名是IP地址:43.19.196.36

DesiredCapabilities capabilities = DesiredCapabilities.phantomjs();
capabilities.setJavascriptEnabled(true);
System.setProperty("phantomjs.binary.path", "../Drivers/phantomjs.exe");

ArrayList<String> cliArgsCap = new ArrayList<String>();
cliArgsCap.add("--proxy=hostname:port");
cliArgsCap.add("--proxy-auth=username:password");
cliArgsCap.add("--proxy-type=http");
capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, cliArgsCap);

driver = new PhantomJSDriver(capabilities);

driver.get("http://api.ipify.org/");
logger.info("IP Address: " + Jsoup.parse(driver.getPageSource()).body().text());

此代码工作正常,我的应用程序正在使用代理地址。

2017-07-24 16:37:47 INFO  ElectoralRoll:81 - IP Address: 42.10.197.10

但是,如何为 Chrome 设置相同的代理?这是我的代码。它打印我的 IP 地址。它没有使用代理。

Proxy proxy = new Proxy();

proxy.setHttpProxy("hostname:port");
proxy.setFtpProxy("hostname:port");
proxy.setSslProxy("hostname:port");
proxy.setSocksUsername("username");
proxy.setSocksPassword("password");

capabilities.setCapability(CapabilityType.PROXY, proxy);

这会打印我的 IP 地址:

2017-07-24 16:37:47 INFO  ElectoralRoll:81 - IP Address: 

这个我也试过了。但没有成功。

capabilities.setCapability("chrome.switches", Arrays.asList("--proxy-server=http://username:password@hostname:port"));

引用: https://stackoverflow.com/a/19225780/8329042

编辑:我添加了:(@Riaz 的回答)

proxy.setProxyType(ProxyType.MANUAL);

在我的代码中使用它,它说:

2017-07-26 20:22:03 INFO  ElectoralRoll:83 - IP Address: proxy authorization required

最佳答案

尝试查看代码 here 。特别是这些位:

proxy.setProxyType(ProxyType.MANUAL);

capability.setCapability(CapabilityType.PROXY, proxy);

我不知道 Chrome 中有任何特殊需求才能实现此功能,因此这可能是一些基本的东西。

关于java - 如何在selenium中设置chrome代理: Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45339681/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com