如何在 Chrome 浏览器的 seleniumWebdriver 中设置代理身份验证

新手上路,请多包涵

我正在尝试自动化 Web 应用程序 selenium 2.0 [webdriver+java]。该 Web 应用程序当前部署在我们本地网络上的 UAT 服务器中。我的测试用例正在执行,但我必须手动输入我的代理身份验证详细信息测试执行开始时的 Chrome 实例。我已经尝试了堆栈溢出提供的所有解决方案,但仍然弹出身份验证消息。

在此处输入图像描述

这是我在驱动程序初始化过程中使用的代码

包 com.misyn.ess.ui;

 import java.util.Arrays;
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;

/**
 *
 * @author User
 */
public class DriverClass {

    private String baseUrl;
    private String driverPath;
    private String driverName;
    private static WebDriver driver;
    private static DriverClass driverClass;

        private DriverClass() {
            try {
                baseUrl = "http://192.168.0.10:8282/ess";
                driverPath = "E:\\Work_Folder\\SelTools\\chromedriver.exe";
                driverName = "webdriver.chrome.driver";

                //Set the location of the ChromeDriver
            System.setProperty(driverName, driverPath);
            //Create a new desired capability
            DesiredCapabilities capabilities = DesiredCapabilities.chrome();
            // Create a new proxy object and set the proxy
            Proxy proxy = new Proxy();
            proxy.setHttpProxy("192.168.0.200:3128");
            proxy.setSocksUsername("avishka");
            proxy.setSocksPassword("12345678");
            //Add the proxy to our capabilities
            capabilities.setCapability("proxy", proxy);
            //Start a new ChromeDriver using the capabilities object we created and added the proxy to
            driver = new ChromeDriver(capabilities);

            //Navigation to a url and a look at the traffic logged in fiddler
            driver.navigate().to(baseUrl);

    //            System.setProperty(driverName, driverPath);
    //            driver = new ChromeDriver();
    //            driver.get(baseUrl);

            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

任何人都可以给我一个解决方案,如何从应用程序本身提供这个代理用户名和密码,而不是在弹出窗口(身份验证)上手动输入详细信息,任何帮助将不胜感激。谢谢

当前回答的仅适用于

从 Selenium 3.4 开始,它仍处于测试阶段 目前仅针对 InternetExplorerDriver 实现

我在哪里使用 selenium 3.0 和 Google Chrome 作为我的网络浏览器。

原文由 Avishka Perera 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
1 个回答
    public class DriverClass {

    private String baseUrl;
    private String driverPath;
    private String driverName;
    private static WebDriver driver;
    private static DriverClass driverClass;

    public DriverClass() {
        try {
            baseUrl = "http://192.168.0.10:8282/ess";
            driverPath = "E:\\Work_Folder\\SelTools\\chromedriver.exe";
            driverName = "webdriver.chrome.driver";
            System.setProperty(driverName, driverPath);

            Proxy proxy = new org.openqa.selenium.Proxy();
            proxy.setSslProxy("192.168.0.200" + ":" + 3128);
            proxy.setFtpProxy("192.168.0.200" + ":" + 3128);
            proxy.setSocksUsername("avishka");
            proxy.setSocksPassword("12345678");

            DesiredCapabilities desiredCapabilities = DesiredCapabilities.chrome();
            desiredCapabilities.setCapability(CapabilityType.PROXY, proxy);

            driver = new ChromeDriver(desiredCapabilities);

            driver.get(baseUrl);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

代理设置已添加所需的功能,以将值传递给代理身份验证,最终起作用

原文由 Avishka Perera 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题