Gyo*_*rgy 1 java google-chrome http-proxy selenium-chromedriver selenium-webdriver
我想要一个能够打开 chrome 浏览器并能够通过代理打开 url 的解决方案。
我决定使用以下内容:
Selenium WebDriver 3.0.1 与 Java 1.8.0_111-b14
chromedriver.exe 2.25
我面临一个奇怪的问题:
“只允许本地连接。”
请看我的代码:
package seleniumFiles;
import java.util.Arrays;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.*;
import org.openqa.selenium.remote.DesiredCapabilities;
public class SeleniumClass {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\\work\\selenium-java-3.0.1\\chromedriver.exe");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("network.proxy.http", "93.180.7.246");
capabilities.setCapability("network.proxy.http_port", "8080");
capabilities.setCapability("webdriver.chrome.args", Arrays.asList("--verbose --whitelisted-ips=''"));
WebDriver driver = new ChromeDriver(capabilities);
driver.get("http://www.whoishostingthis.com/tools/user-agent/");
}
}
Run Code Online (Sandbox Code Playgroud)
在cmd中运行“chromedriver.exe --verbose --whitelisted-ips=''” sais“白名单允许远程连接<''>”这似乎有效,但我无法弄清楚我在代码中做错了什么.
任何想法或建议表示赞赏。
的所有答案addArguments("--whitelisted-ips=''");都是错误的。这个参数需要注入 chromedriver exe,而不是 chrome。
如果您直接从代码本地使用 ChromeDriver,只需在 ChromeDriver init 之前插入以下行
System.setProperty("webdriver.chrome.whitelistedIps", "");
Run Code Online (Sandbox Code Playgroud)
如果您远程使用它(例如 Selenium 集线器/网格),您需要在节点运行时像在命令中一样设置系统属性:
java -Dwebdriver.chrome.whitelistedIps= testClass
Run Code Online (Sandbox Code Playgroud)
或 docker 通过传递 JAVA_OPTS env
chrome:
image: selenium/node-chrome:3.141.59
container_name: chrome
depends_on:
- selenium-hub
environment:
- HUB_HOST=selenium-hub
- HUB_PORT=4444
- JAVA_OPTS=-Dwebdriver.chrome.whitelistedIps=
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15518 次 |
| 最近记录: |