【发布时间】:2020-01-09 17:43:48
【问题描述】:
我正在尝试在我的一个 Testcafe 案例中使用 if/else 语句,但条件是查看字符串是否包含单词(子字符串),如果不运行则转到 else
这是一个示例代码:
const textData = Selector('.css-f3fafa').innerText;
if (textData.includes("Administrator") ) {
await t
.hover(button1)
.expect(button).eql('Submit')
.click(buttonUp)
.setNativeDialogHandler(() => true)
.click(modalSub)
.wait(5000)
.expect(thank).eql('Thank you for your submission.')
} else {
await t
// .hover(button1)
// .expect(button).eql('Sign Up')
.expect(textData).contains('Administrator')
.click(button1)
.expect(getStarted).ok('Get Started')
}
我不断收到类型错误:textData.includes... is not a function,但如果我这样做了.expect(textData).includes...,它工作得很好并且它通过了。我还尝试了indexOf,将a === true 添加到条件中,我尝试将String() 添加到变量中,这有点工作,但它直接跳到了else(即使条件为真也不通过If)
是否有另一种方法可以使这种情况与 Testcafe 一起使用?
【问题讨论】:
-
textData的实际数据类型是什么?由于某种原因,它听起来不是一个字符串。当您尝试indexOf时发生了什么?你收到错误了吗? -
我也遇到了同样的错误;这是实际的元素
Data Reviewer, Administrator, Tester
-
@DjKniteX:请您回复一下您是如何做到这一点的?我面临同样的问题,但无法使用已接受答案中的步骤修复它。
-
嗨@Janaaaa;我让它与@Andreas 发布的示例一起使用!
标签: javascript testing ecmascript-6 automated-tests testcafe