浏览 5265 次
锁定老帖子 主题:使用selenium测试zk组件技巧
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-07-15
这直接导致selenium.click("id=xxx")这样的代码不能使用了,要得到页面上的一个链接或者一个输入框,我都得小心翼翼的去翻zk生成的长长的html代码,而且页面一有更改,可能之前写的代码都不能用了。如果要是能在生成的html中,也能看到zk中的组件的id号就方便多了。 解决方法: 修改zk的源码。修改org.zkoss.zk.ui.HtmlBasedComponent这个类,在getOuterAttrs()方法中增加了一句 HTMLs.appendAttribute(sb, "autotest", getId());这样比如一个输入框生成的html代码里就会有类似<input autotest='input1'>这样的代码了,这样在selenium中就可以直接用 selenium.click("xpath=//*[@autotest='" + id + "']");来操作这个对象,方便多了。
在zk生成的按钮可以增加自定义的事件来检查某个输入框内输入字符串是否符合要求。这时候如果使用selenium.type命令在输入框中输入,就会发现zk总会认为输入的内容是空的。原因为,selenium的type命令和手工在浏览器中输入字符有不相同的地方,手工在浏览器中输入字符会自动触发此输入框的onchange和onblur这两个javascript事件。而selenium的type命令不会, 解决方法: 在使用type后,手工触发一下change和blue事件。如: selenium.type("xpath=//*[@autotest='" + element + "']", type); selenium.fireEvent("xpath=//*[@autotest='" + element + "']", "change"); selenium.fireEvent("xpath=//*[@autotest='" + element + "']", "blur"); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-02-23
朋友,您说"修改org.zkoss.zk.ui.HtmlBasedComponent这个类",可是,JAVA使用ZK框架时是以jar包形式引用的,如何修改jar包里的源码?
另,我尝试了一下,把zk源代码down下来,按照你的提示修改了,htmlbasedcomponent类,但不知道怎么压缩成jar包,可否教我具体步骤? |
|
返回顶楼 | |
发表时间:2009-02-23
用winrar或者其他的压缩软件打开jar包,直接替换编译后的那个class文件即可
|
|
返回顶楼 | |
发表时间:2009-02-24
厉害,我找到了原jar包里的HtmlBasedComponent.class文件 ,但有个问题,我怎么把我修改后的 HtmlBasedComponent.java编译成HtmlBasedComponent.class呢 ,直接编译单个HtmlBasedComponent.java文件出错,提示找不到很多引用的类。
请赐教 |
|
返回顶楼 | |
发表时间:2009-02-24
这个貌似该发到入门版。
用eclipse导入源码后会自动编译啊...找到对应文件夹下的class文件就是了 |
|
返回顶楼 | |
发表时间:2009-02-25
本人ECLIPSE的菜鸟,尝试以下步骤导入,结果workspace目录下连build目录都没有生成,不会自动build--->
1)新建一个“java 项目” 名为“zksrc” 2)想zksrc项目“import”-->"FileSystem" 导入zk源码 --后来上网搜了一下“eclipse import projects” 原来是按一下步骤导入源代码 : 新建一个“java 项目” 名为“zksrc” ————>单击“next”,选中“create project from existing sourc”(http://forums.java.net/jive/thread.jspa?messageID=278985) --> 找到zk源码目录。 ok,过了一会看到目录下“bin”里生成了zk的class文件。 非常感谢您的帮助!:) |
|
返回顶楼 | |