使用反射实现 webdriver page 类
2015-01-06 09:48
281 查看
这个类的目的是为了简化page类的实例化,只需要定义public page成员变量 然后再 启动driver后 通过反射实例化page 后面可以直接点出page实例
具体项目中继承改类
最后实例化一次PageF 就可以直接点出自己的page了
package crazy.seleiumTools; import java.lang.reflect.Field; import org.openqa.selenium.WebDriver; import crazy.tools.Dbtool; /** * @author xian_crazy QQ:330126160 * @version 2014年12月5日 下午1:43:29 * @see */ public class PageFactory { private WebDriver driver; private Dbtool dbtool; public PageFactory(WebDriver driver, Dbtool dbtool) { this.dbtool = dbtool; this.driver = driver; this.pageFactory(); } public void pageFactory() { /** * 通过反射自动循环实例化所有public 页面 */ Field[] f = this.getClass().getFields(); for (int i = 0; i < f.length; i++) { try { f[i].set( this, Class.forName(f[i].getType().getName()) .getConstructor(WebDriver.class, Dbtool.class) .newInstance(driver, dbtool)); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
具体项目中继承改类
import org.openqa.selenium.WebDriver; import yly.web.Page.LoginPage; import yly.web.Page.MainMenuPage; import crazy.seleiumTools.PageFactory; import crazy.tools.Dbtool; /** * @author xian_crazy QQ:330126160 * @version 2014年11月13日 上午9:19:46 * @see */ public class PageF extends PageFactory{ public MainMenuPage mainMenuPage; public LoginPage loginpage; public PageF(WebDriver driver, Dbtool dbtool) { super(driver, dbtool); } }
最后实例化一次PageF 就可以直接点出自己的page了
相关文章推荐
- 使用反射实现 webdriver page 类
- Cucumber java + Webdriver (4) 使用自动化测试的Page对象模式
- 不使用反射,“一行代码”实现Web、WinForm窗体表单数据的填充、收集、清除,和到数据库的CRUD
- Cucumber java + Webdriver (7) 结合Page Object,使用LoadableComponent
- ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十二) 代码重构使用反射工厂解耦(一)缓存切换
- 使用selenium的WebDriver和ChromeDriver实现UI自动化
- webdriver定位页面元素时使用set_page_load_time()和JavaScript停止页面加载
- ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十一) 代码重构使用反射工厂解耦
- 不使用反射,“一行代码”实现Web、WinForm窗体表单数据的填充、收集、清除,和到数据库的CRUD
- 不使用反射,“一行代码”实现Web、WinForm窗体表单数据的填充、收集、清除,和到数据库的CRUD
- ASP.NET 2.0: 在使用web.sitemap时,如何实现本地化
- 使用MagicAjax 实现无刷新Webparts
- 如何:使用回调方法实现异步 Web 服务客户端
- 使用 ASP.NET Atlas PageNavigator控件实现客户端分页导航
- 在Web项目开发中使用BasePage类的巧用(继承System.Web.UI.Page)
- 使用反射实现多数据库的支持
- 使用 ASP.NET Atlas PageNavigator控件实现客户端分页导航
- 使用反射实现根据名称动态创建窗体的几种方法。
- 使用 HttpWebRequest 轻松实现站外提交(可用于自动登陆,自动网上投票等)
- 用数据库中的栏目表绑定SiteMapPath不成功,为什么网上的贴子都是使用Web.sitemap 来实现