首页 > 解决方案 > 获取 TypeError:browser.saveElement 和 browser.checkElement 不仅仅是 JENKINS 中的函数,它在本地机器上正常工作

问题描述

目前我正在使用 wdio-image-comparison-service 进行图像比较,以比较元素或图像的两个屏幕截图。我已经使用 browser.saveElement 函数来获取第一个元素的屏幕截图,我想与它比较另一个图像,为此我使用了 browser.checkElement 函数。我为此使用了以下代码:

//taking screenshot for comparison
browser.saveElement($("//span[@data-action='move'][1]"), 'UploadWallpaper', { /* some options */ });


//Checking screenshot with imagecropper element screenshot
const imagecropper ="//div[@class='io-imagecropper text-center']/img";
expect(browser.checkElement($(imagecropper), 
    'UploadWallpaper', { })
    ).toEqual(0);
browser.pause(2000); 

在配置文件中,我编写了如下服务:

    services: ['selenium-standalone', 'visual-regression', 
    ['image-comparison', 
    // The options
    {
        // Some options, see the docs for more
        baselineFolder: join(process.cwd(), './tests/'),
        formatImageName: '{tag}-{logName}-{width}x{height}',
        screenshotPath: join(process.cwd(), '.tmp/'),
        savePerInstance: true,
        autoSaveBaseline: true,
        blockOutStatusBar: true,
        blockOutToolBar: true,
        ignoreNothing: true  // Without this option, it errors out only when mismatch is above 1.23%
        // ... more options
    }],],

此代码在我的本地机器上按预期工作,但是当我尝试在 jenkins 上运行相同的代码时,这两个函数都作为 typeError 给我错误。

任何人都可以为此提出任何解决方案吗?

标签: webdriver-ioimage-comparisonwdio-v5

解决方案


推荐阅读