F#机盖中的按钮扩展

问题描述

我正在尝试在f#和树冠中进行常规按钮扩展。

您知道我们可以在机盖中单击这样的按钮

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")