0

Selenium 4.0.0 版本的 Firefox 浏览器中是否可以通过 URL 传递用户名和密码?我能够通过 selenium 3.141.59 版本但无法通过 Selenium 4 版本。我也可以使用开发工具概念传递给 Chrome 和边缘浏览器。

我使用的示例代码是:

FirefoxOptions options = new FirefoxOptions();
options.setAcceptInsecureCerts(true);
options.setCapability("build", "Testing Firefox Options [Selenium 4]");
options.setCapability("name", "Testing Firefox Options [Selenium 4]");
options.setCapability("platformName", "Windows 10");
options.setCapability("browserName", "Firefox");
options.setCapability("browserVersion", "95.0");
try {
driver = new RemoteWebDriver(new URL("http://" + username + ":" + Password+ 
"@hub.lambdatest.com/wd/hub"), ((Capabilities) options));
} catch (MalformedURLException e) {
System.out.println("Invalid grid URL");
}driver.get("https://www.lambdatest.com");

在使用代码片段时,我无法在 Firefox 中创建任何新会话。我想成为:http://username:password@the-site.com

有什么办法可以做到这一点,或者 selenium 4 在 Firefox 浏览器中不支持这个功能吗?

4

1 回答 1

0

DesiredCapabilities 现在在 v4.xx 中已弃用,功能现在符合 W3C 并使用适当的前缀包装您的供应商选项(在本例中为 LT:Options for lambdatest.com)

对以下内容进行补救:

public void setUp() throws Exception {
    FirefoxOptions options = new FirefoxOptions();
    options.setAcceptInsecureCerts(true);
    options.setPlatformName("Windows 10");
    options.setBrowserVersion("95.0");

    HashMap<String, Object> ltOptions = new HashMap<String, Object>();
    ltOptions.put("build", "Testing Firefox Options [Selenium 4]");
    ltOptions.put("name", "Testing Firefox Options [Selenium 4]");
    ltOptions.put("browserName", "Firefox");
    options.setCapability("LT:Options", ltOptions);

    try {
        driver = new RemoteWebDriver(new URL("http://" + username + ":" + Password + "@hub.lambdatest.com/wd/hub"), options);
    } catch (MalformedURLException e) {
        System.out.println("Invalid grid URL");
    }

    driver.get("https://www.lambdatest.com");
}
于 2022-01-06T02:13:14.893 回答