差異處
這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
rf:rf:evaluate [2013/03/12 00:38] tony |
rf:rf:evaluate [2023/06/25 09:48] (目前版本) |
||
---|---|---|---|
行 40: | 行 40: | ||
其它還有abs、ord、unichar等functions,這部分就當大家的功課了。 | 其它還有abs、ord、unichar等functions,這部分就當大家的功課了。 | ||
===== Other Libraries ===== | ===== Other Libraries ===== | ||
- | 在前一節中,是直接透過使用function去達到你的需求,因為在Python中,函式也是屬於First-Class。在這部分主要分享給你的,是使用物件所提供的函示。 | + | 在前一節中,是直接透過使用function去達到你的需求,因為在Python中,函式也是屬於First-Class。在這部分主要分享給你的,是基於物件所提供的函式。 |
==== Builtin-Type Function ==== | ==== Builtin-Type Function ==== | ||
- | 以前剛開始寫Robot時,只是想做tolowercase與touppercase的字串轉換。但因為Robot本身的Library中並沒有提供這樣s的Keyword,只好自己寫一個出來。要達到這個需求,除了使用Plugin寫法去引用Java或Python中的字串函式外,Evaluate也能達到一樣的效力。我直接使用[[http://docs.python.org/2/library/stdtypes.html#string-methods|Built-in DataType]]的function來達到lower與upper的轉換: | + | 以前剛開始寫Robot時,只是想做tolowercase與touppercase的字串轉換。但因為Robot本身的Library中並沒有提供這樣的Keyword,只好自己寫一個出來。要達到這個需求,除了使用Plugin寫法去引用Java或Python中的字串函式外,Evaluate也能達到一樣的效力。我直接使用[[http://docs.python.org/2/library/stdtypes.html#string-methods|Built-in DataType]]的function來達到lower與upper的轉換: |
<code> | <code> | ||
${str} | Set Variable | TEMP | ${str} | Set Variable | TEMP | ||
行 50: | 行 50: | ||
[[http://docs.python.org/2/library/stdtypes.html|其它]]還有關於數字、檔案之類的函式介紹,但我想會寫在Robot內的應該都是操作String居多吧.. | [[http://docs.python.org/2/library/stdtypes.html|其它]]還有關於數字、檔案之類的函式介紹,但我想會寫在Robot內的應該都是操作String居多吧.. | ||
==== Module Function ==== | ==== Module Function ==== | ||
- | Python有一堆有的沒的Module,我們也可以在Robot中使用它們。使用也相當簡單,只要做匯入模組後,就可以透過它所提供的類別與對應函式做操作。我以操作datetime與os做例子: | + | Python有一堆有的沒的Module,我們也可以在Robot中使用它們。使用相當簡單,只要做匯入模組後,就可以透過它所提供的類別與對應函式做操作。我以操作datetime與os做例子: |
=== datetime === | === datetime === | ||
[[http://docs.python.org/2/library/datetime.html|datetime]]就是提供操作date與time相關功能的類別。我們直接來看看如何使用: | [[http://docs.python.org/2/library/datetime.html|datetime]]就是提供操作date與time相關功能的類別。我們直接來看看如何使用: | ||
行 65: | 行 65: | ||
${today} | Evaluate | os.environ['SystemRoot'] | os | ${today} | Evaluate | os.environ['SystemRoot'] | os | ||
</code> | </code> | ||
+ | === math === | ||
+ | [[https://docs.python.org/2/library/math.html|math]]提供math相依功能,想做函數運算可以查查它的文件說明。 | ||
+ | <code bash> | ||
+ | ${ceil} | Evaluate | math.ceil(int(${a}/float${b})) | math | ||
+ | ${floor} | Evaluate | math.floor(int(${a}/float${b})) | math | ||
+ | </code> | ||
+ | |||
+ | |||
===== 總結 ===== | ===== 總結 ===== | ||
其實只要能看得懂Python Document,Evaluate就可以隨心所欲的用啦。要謹記在心的是: 不是每一個function都能夠使用,因為Robot並不一定能夠接受Python參數與回傳格式,而且function會根據Python版本去支援。如果你是透過RobotFramework的jar,那它所用的Python版本就要看Jython。假如使用了不支援的function,以bin()來說,應該會看到NameError: name 'bin' is not defined的錯誤訊息,這時候就要自己來了! \\ | 其實只要能看得懂Python Document,Evaluate就可以隨心所欲的用啦。要謹記在心的是: 不是每一個function都能夠使用,因為Robot並不一定能夠接受Python參數與回傳格式,而且function會根據Python版本去支援。如果你是透過RobotFramework的jar,那它所用的Python版本就要看Jython。假如使用了不支援的function,以bin()來說,應該會看到NameError: name 'bin' is not defined的錯誤訊息,這時候就要自己來了! \\ |