0

我正在使用Protractor使用Jasmin在 Angular 中编写 e2e 测试用例。

我正在使用Saucelab在Chrome、Firefox、Edge 和 IE11上执行我的测试用例。

我遇到了一个问题,即使用mouseMove的悬停功能在 IE11 的情况下不起作用,所以我想跳过IE11的那些测试用例,但必须为其余 3 个浏览器执行 thost 测试。

我的 protractor.config.js 文件如下......

     multiCapabilities: ([
        {
           name: "ds-e2e-firefox",
           browserName: "firefox",
           version: "63"
        },
        {
           name: "ds-e2e-chrome",
           browserName: "googlechrome",
           version: "70"
        },
        {
           name: "ds-e2e-edge",
           browserName: "MicrosoftEdge",
           version: "16",
           avoidProxy: true
        },
        {
          name: "ds-e2e-ie11",
          browserName: "internet explorer",
          version: "11",
          iedriverVersion: "3.12.0"
        }
      ]).map(cap => Object.assign(cap, {
        platform: "Windows 10",
        seleniumVersion: SELENIUM_VERSION,
        screenResolution: "1920x1080"
      }))
    };
...

我对其他一些解决方法持开放态度,因为我无法思考如何实现这一点。

4

2 回答 2

0

multicapabilities 是具有一系列功能的集合,因此您可以尝试使用为忽略规范文件而保留的 exclude 关键字。

    {
      name: "ds-e2e-ie11",
      browserName: "internet explorer",
      version: "11",
      iedriverVersion: "3.12.0",
      exclude: [specfile.js, specfile2.js]
    }
于 2019-06-03T12:56:36.107 回答
0

接近它的方法之一就是这样

it("Search by name", async () => {

    // open home page
    await browser.get(params.baseUrl);

    let capabilities = await browser.getCapabilities();
    let browserName = capabilities.map_.get('browserName');

    if (browserName === "chrome") {
        // your test goes here
    }
});
于 2019-06-03T18:11:42.167 回答