You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术求助:Selenium代码无法在LambdaTest平台运行

解决LambdaTest上Selenium测试的Legacy Capabilities报错问题

问题原因

  • 代码中使用的platform和name属于旧版(Legacy)Capabilities,Selenium 4+已弃用,必须改用W3C标准配置格式
  • 未按LambdaTest要求嵌套自定义能力,导致会话创建失败,所有测试被跳过

修复步骤

  1. 替换platform为W3C标准的platformName
    W3C规范中平台名称需使用标准值:Windows、macOS、Linux(注意大小写)
  2. 将测试名称name放入LambdaTest专属配置lt:options
    LambdaTest的自定义能力(如测试名称、构建标识等)必须嵌套在lt:options对象中,不能直接作为顶级Capability

修改后的完整代码

package lambdatest;

import org.openqa.selenium.*;
import org.openqa.selenium.remote.*;
import org.testng.Assert;
import org.testng.annotations.*;

import java.net.URL;

public class Lambdatest {

    private WebDriver driver;

    @BeforeClass
    @Parameters({"browserName", "browserVersion", "platform"})
    public void setUp(String browserName, String browserVersion, String platform) throws Exception {
        // 基础W3C能力配置
        MutableCapabilities capabilities = new MutableCapabilities();
        capabilities.setCapability("browserName", browserName);
        capabilities.setCapability("browserVersion", browserVersion);
        // 替换为W3C标准的platformName
        capabilities.setCapability("platformName", platform);

        // LambdaTest自定义能力,嵌套在lt:options中
        MutableCapabilities ltOptions = new MutableCapabilities();
        ltOptions.setCapability("name", "LambdaTest Assignment");
        // 可添加更多LambdaTest自定义能力,比如构建信息
        // ltOptions.setCapability("build", "Selenium-W3C-Build-1");

        capabilities.setCapability("lt:options", ltOptions);

        String username = "**************";
        String accessKey = "*************************************";

        driver = new RemoteWebDriver(new URL("https://" + username + ":" + accessKey + "@hub.lambdatest.com/wd/hub"), capabilities);
    }

    @AfterClass
    public void tearDown() {
        if (driver != null) {
            driver.quit();
        }
    }

    @Test(priority = 1)
    public void testScenario1() {
        driver.get("https://www.lambdatest.com/selenium-playground/");

        String pageTitle = driver.getTitle();
        Assert.assertEquals(pageTitle, "LambdaTest"); // Expecting failure
    }
}

额外注意事项

  • 确保使用Selenium 4.x及以上版本,W3C Capabilities是该版本的默认标准
  • 检查TestNG参数中的platform值是否与W3C规范一致(如Windows而非windows)
  • 所有LambdaTest专属的配置项(如build、project、video等)都需放入lt:options对象内

内容的提问来源于stack exchange,提问作者Ezhumalai Shanmugam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 09:52:42