如何跳过针对Protractor中特定浏览器执行的测试用例文件

时间:2019-06-03 12:01:23

标签: selenium jasmine protractor e2e-testing angular-e2e

我正在使用量角器使用 Jasmin 在Angular中编写e2e测试用例。

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

我遇到了一个问题,即在IE11的情况下,使用 mouseMove 进行的 hover 功能不起作用,因此我想跳过 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"
      }))
    };
...

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

2 个答案:

答案 0 :(得分:0)

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

    {
      name: "ds-e2e-ie11",
      browserName: "internet explorer",
      version: "11",
      iedriverVersion: "3.12.0",
      exclude: [specfile.js, specfile2.js]
    }

答案 1 :(得分: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
    }
});