如何用TypeScript在WebdriverIO中定义WebElement类型的点击辅助函数
在WebdriverIO+TypeScript中定义接收元素参数的辅助函数
在WebdriverIO的TypeScript环境里,对应Java Selenium中WebElement的类型是WebdriverIO.Element(已解析的元素实例),如果是未解析的链式元素(比如$(selector)返回的对象)则用ChainablePromiseElement<WebdriverIO.Element>。以下是适配的实现方式:
仅接收已获取的元素实例
如果你的参数是已经定位到的元素对象,直接用WebdriverIO.Element作为类型:
static async clickOnElement(elementToClk: WebdriverIO.Element): Promise<void> { console.log(`Clicking on element: ${elementToClk}`); await elementToClk.click(); console.log("Element clicked"); }
兼容定位器字符串和元素对象
如果需要同时支持传入定位器字符串(比如'#submit-btn')和已获取的元素,可使用联合类型:
static async clickOnElement(elementToClk: string | WebdriverIO.Element): Promise<void> { const targetElement = typeof elementToClk === 'string' ? $(elementToClk) : elementToClk; console.log(`Clicking on element: ${elementToClk}`); await targetElement.click(); console.log("Element clicked"); }
说明:
- WebdriverIO的API几乎都是异步的,必须给
click()加上await,函数也需声明为async WebdriverIO.Element类型和Java中WebElement的概念完全匹配,代表已定位到的页面元素实例
内容的提问来源于stack exchange,提问作者Prakash P
相关产品推荐
相关产品推荐

