如何将代理设置为selenium远程web驱动程序?

如何将代理设置为selenium远程web驱动程序?,selenium,proxy,remotewebdriver,aws-device-farm,Selenium,Proxy,Remotewebdriver,Aws Device Farm,我正在尝试在公司代理后面执行aws设备场示例。 起初,我在连接aws时遇到了代理问题。 我通过设置aws代理配置来解决这个问题。 现在我面临另一个代理问题。 创建remotewebdriver时发生未知主机名错误。 这是我的源代码 @Before public void setUp() { try { ProxyConfiguration.Builder proxyConfig = ProxyConfiguration.builder(); proxyC

我正在尝试在公司代理后面执行aws设备场示例。 起初,我在连接aws时遇到了代理问题。 我通过设置aws代理配置来解决这个问题。

现在我面临另一个代理问题。 创建remotewebdriver时发生未知主机名错误。 这是我的源代码

@Before
public void setUp() {
    try {
        ProxyConfiguration.Builder proxyConfig = ProxyConfiguration.builder();
        proxyConfig.endpoint(new URI("<YOUR PROXY URL>"));
        proxyConfig.username("<YOUR USER ID>");
        proxyConfig.password("YOUR PASSWORD");
        ApacheHttpClient.Builder httpClientBuilder =
                ApacheHttpClient.builder()
                                .proxyConfiguration(proxyConfig.build());

        String myARN = "<YOUR ARN>";
        DeviceFarmClient client  = DeviceFarmClient.builder()
                .credentialsProvider(DefaultCredentialsProvider.create())
                .region(Region.US_WEST_2)
                .httpClientBuilder(httpClientBuilder)
                .overrideConfiguration(ClientOverrideConfiguration.builder().build())
                .build();
        CreateTestGridUrlRequest request = CreateTestGridUrlRequest.builder()
                .expiresInSeconds(300)        // 5 minutes
                .projectArn(myARN)
                .build();
        URL testGridUrl = null;
        CreateTestGridUrlResponse response = client.createTestGridUrl(request);
        testGridUrl = new URL(response.url());
        driver = new RemoteWebDriver(testGridUrl, DesiredCapabilities.chrome()); //error occurred at this line.
    } catch (Exception e) {
        e.printStackTrace();
    }
}
我试图采取一些措施来解决这个问题,但没有一个效果好。 下面是我的一些试验

  • 使用browsermob库
  • 错误消息是

    java.io.IOException: Failed to authenticate with proxy
    
    我如何解决这个问题


    谢谢。

    在您的计算机上运行的Selenium客户端需要使用公司代理连接到AWS设备场

    需要设置webdriver连接的代理

    下面是Javascript中的示例

    const driver=wait new Builder()
    .usingWebDriverProxy(process.env.HTTPS|u PROXY | |“”)
    .usingServer(urlString)
    .有能力(。。。
    
    感谢您的重播。我尝试了chrome\u选项,但没有成功。我必须尝试其他措施。
    DesiredCapabilities cap = DesiredCapabilities.chrome();
    BrowserMobProxy bmp = new BrowserMobProxyServer();
    bmp.setChainedProxy(
            new InetSocketAddress("<PROXY HOST>", Integer.valueOf("<PROXY PORT>")));
    bmp.chainedProxyAuthorization("<USER>", "<PASSWORD>", AuthType.BASIC);
    bmp.setTrustAllServers(true);
    bmp.start();
    Proxy proxy = ClientUtil.createSeleniumProxy(bmp);
    cap.setCapability(CapabilityType.PROXY, proxy);
    driver = new RemoteWebDriver(testGridUrl, cap);
    
    Authenticator.setDefault(new Authenticator() {
        public PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(proxyUserName, proxyPassword.toCharArray());
        }
    } );
    System.setProperty("http.proxyUser", proxyUserName);
    System.setProperty("http.proxyPassword", proxyPassword);
    
    java.io.IOException: Failed to authenticate with proxy