最近看了一下selenium如果要把这个用于自动化测试,需要进行整理,形成一个框架,我也对Google搜索这样简单的功能做了一些尝试,形成了一个简单的框架,简单的说应该有四层:
第一层应该是UIObject这个对象层,主要是用来封装对象的操作方法,例如:
Java代码:
1. public class TextFieldUIObject extends UIObject { 2. 3. /** 4. * 构造函数用于构造textfield对象 5. * @param locator 描述信息 6. */ 7. public TextFieldUIObject(String locator) 8. { 9. super(locator); 10. } 11. /** 12. * 向textfield输入值 13. * @param content 输入的内容 14. * @throws SeleniumHelperNotExistException 15. */ 16. public void type(String content) throws SeleniumHelperNotExistException 17. { 18. if(UIObjectHelper.SeleniumHelper==null) throw new SeleniumHelperNotExistException(); 19. UIObjectHelper.SeleniumHelper.type(this.locator,content); 20. } 21. } |
该代码,封装了textfield的控件,加入了方法type用于输入
第二层主要是构件层,主要用来描述页面上的控件,这里我用了最简单的静态变量的方法,还可以使用yml,xml,json甚至某种格式的文本文件进行描述,之后根据文件生成,这样可能会更加方面修改。
代码如下:
Java代码:
1. public class GoogleGuis { 2. public static PageUIObject SearchPage = new PageUIObject("/"); 3. public static TextFieldUIObject SearchInput = new TextFieldUIObject("q"); 4. public static ButtonUIObject SearchButton = new ButtonUIObject("btnG"); 5. } |
第三层应该叫组件层,可以页面切分成大组件,然后对组件进行相关的操作,这里把Google的搜索作为一个组件,代码如下: