f# canopy 中的按钮扩展

button extension in f# canopy

我正在尝试在 f# 和 canopy 中进行通用按钮扩展。

如你所知,我们可以在 canopy 中单击这样的按钮

click (//button[contains(text(),'save')])[last()]

但我正在尝试做这样的事情。

let _button value = sprintf "(//button[contains(text(),'%s')])[last()]" value
let button value = _button value 
click button "save"

但这给出了这个值不是函数,不能应用
有什么好主意吗?
提前致谢

button 是一个带有签名的函数:string -> string

click 是一个带有签名的函数:string -> something

所以,你不能把button传给click,你应该这样写:

click (button "save")

click <| button "save"

按照惯例,我会将您的代码重写为:

let button = sprintf "(//button[contains(text(),'%s')])[last()]"
click (button "save")