首页 > 解决方案 > WebdriverIO Browser.click 语句给出的不是函数错误

问题描述

我对 WebDriverIO 框架相当陌生,我试图自动化以下场景:

const assert = require('assert');

describe('Second Test With WebDriverIO', () => {

    it('Click the button for WebDriverIO Page', () => {

        browser.url('http://www.kevinlamping.com/webdriverio-course-content/');
        var title = browser.getTitle();
        assert.strictEqual(title,'Robot Parts Emporium');
        //browser.click('.shop-callout a');
        $('.shop-callout a').click();
        title = browser.getTitle();
        assert.strictEqual(title,'Totally Not Evil Sentient Robot - Robot Parts Emporium');

    });
});

但是,我收到一个错误提示"[chrome windows nt #0-0] browser.click is not a function"

但我使用它$('.shop-callout a').click();而不是browser.click('.shop-callout a');它一切正常。

const assert = require('assert');

describe('Second Test With WebDriverIO', () => {

    it('Click the button for WebDriverIO Page', () => {

        browser.url('http://www.kevinlamping.com/webdriverio-course-content/');
        var title = browser.getTitle();
        assert.strictEqual(title,'Robot Parts Emporium');
        //browser.click('.shop-callout a');
        $('.shop-callout a').click();
        title = browser.getTitle();
        assert.strictEqual(title,'Totally Not Evil Sentient Robot - Robot Parts Emporium');

    });
});

任何帮助,将不胜感激。

标签: automationwebdriver-io

解决方案


使用browser.elementClick(elementId), 而不是browser.click(), 因为这是根据 webdriver 协议的正确方法名称。

见下文:-

https://w3c.github.io/webdriver/#element-click

$(selector).click()是 webdriverio 提供的自定义方法,他们使用了与上述相同的方法。


推荐阅读