在量角器测试中,可以链接诸如" clear"之类的动作。和" sendKeys"在这样的元素上:
element(by.id('myId')).clear().sendKeys('123456789')
我喜欢它的紧凑风格。但为什么会有效?
根据webdriver.Element.clear()的API文档,clear()的返回类型为webdriver.promise.Promise.<void>
当我使用TypeScript(1.8.x)编译它时,编译器会抱怨sendKeys()
上没有名为Promise
的属性。我认为事实确实如此。
我认为由于WebDriver ControlFlow Magic,这在运行时有效。
如何扩展Protractor的TypeScript Declaration File,以反映这个ControlFlow-Magic并使我的TypeScript编译器满意?
答案 0 :(得分:0)
您可以将其转换为<any>
类型,如下所示:
(<any> someInput.clear()).sendKeys()
丑陋,但没有TS投诉。
答案 1 :(得分:0)
我们最终将函数添加到这样的命名空间中
public func setup(with transaction: Transaction) {
titleLabel.text = transaction.details?.title
subtitleLabel.text = transaction.details?.subtitle
amountLabel.text = transaction.amountString
statusLabel.text = transaction.status
if let amount = transaction.amount?.amount,
let amountFloat = Float(amount), amountFloat > 0 {
amountLabel.textColor = Colors.green
} else {
amountLabel.textColor = Colors.darkBlue
}
setupStatusIndicator(with: transaction.status)
}