一月 26, 2010

hoamon's sandbox
hoamon
hoamon's sandbox is about »

tag cloud

» 本來我以為 Sikuli 不怎麼樣,但…

昨天看 vgod 的 blog 文章: Change The World! 一開始只是覺得用圖形來控制系統設定好像沒什麼用處,雖然 GUI 方便,但我用慣了命令列,就不覺得設定電腦這個東西改用 GUI 來作有比較好用。下面是他的 demo 。



直到看到後面,他說到這個程式是在 Jython 上開發的,我才開始有點好感,但我還是沒參透為什麼這個專案會受全世界如此大的注目??

今天早上,我繼續想這件事,總算有找到一個恰當用途來應用了,那就是自動打怪,這種圖形控制導向應該比按鍵精靈好用吧! 不過,我也只是猜猜,因為我不打電玩。

剛剛我看了 ErinAutomated test in Android by Sikuli,我才恍然大悟,這是最佳的 GUI 環境自動測試工具,現在我們只會用 unittest 及 django testcase 作到伺服器端函式的測試,一直沒找到在瀏覽器端測試 js 的好工具。現在這個 Sikuli 絕對是可以幫得上忙了。

感謝 vgod 的 good idea 。

三月 13, 2009

limodou的學習記錄
limodou
is about »
» Jython中数组的生成

比如在Java中有byte [],那么如果需要在Jython中传入这样的参数怎么办呢?可以使用jarray模块。如:

  1 
2
3
4
5
>>> import jarray
>>> s = [10, 20]
>>> a = jarray.array(s, 'b')
>>> a
array('b', [10, 20])

使用jarray.array就可以生成数组。而且它是一个通用的功能,根据第二个参数的不同,可以生成不同的类型。对于不同的类型,可以使用不同的类型代码,如:

z Boolean
c char
b byte
h short
i int
l long
f float
d double

如果要转换的没有对应的类型代码,可以直接使用类,比如:java.lang.Byte。

不过对于byte,Python中没有分得很细,要么是字符串,要么是整数。而Java中的byte是带符号的,因此,如果你把一个16进制的字符串想转为一个Byte,怎么做?

int('0xff', 16)

这样得到一个整数。然后:

java.lang.Byte(int('0xff', 16))

但是直接使用java.lang.Byte对象来生成数组是不行的,如:

  1 
2
3
4
5
>>> import java
>>> jarray.array([java.lang.Byte(255)], 'b')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Type not compatible with array type

可以看到类型不对。这时可以使用java.lang.Byte的intValue()就可以了,如:

  1 
2
3
>>> import java
>>> jarray.array([java.lang.Byte(255).intValue()], 'b')
array('b', [-1])

BTW: 刚看到3月9日,Jython 2.5b3发布了,修复了我以前说的关于from xxx import *的Bug。
类别:Jython 查看评论

biggo.com.tw

A Django site.