加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

在java中使用属性文件作为UI映射:

发布时间:2020-12-15 02:35:56 所属栏目:Java 来源:网络整理
导读:所以,我正在阅读selenium测试设计考虑因素文档,我对此处的UI Mapping部分有疑问: http://seleniumhq.org/docs/06_test_design_considerations.html#ui-mapping 他们建议创建一个属性文件,如下所示: admin.username = loginForm:tbUsernameadmin.loginbutto
所以,我正在阅读selenium测试设计考虑因素文档,我对此处的UI Mapping部分有疑问:
http://seleniumhq.org/docs/06_test_design_considerations.html#ui-mapping

他们建议创建一个属性文件,如下所示:

admin.username = loginForm:tbUsername
admin.loginbutton = loginForm:btnLogin
admin.events.createnewevent = adminHomeForm:_activitynew
admin.events.cancel = addEditEventForm:_IDcancel
admin.events.viewoldevents = adminHomeForm:_activityold

将html对象映射到关键字

然后他们会像这样使用它:

selenium.type(admin.username,"xxxxxxxx");

但是,从我所看到的关于属性对象的内容来看,它的工作原理与哈希表非常相似.现在我正在加载我的属性文件,如下所示:
http://docs.oracle.com/javase/tutorial/essential/environment/properties.html
在创建和加载默认属性部分下

所以在我需要的文档中使用相同的语句:

selenium.type(loadedProps.get(admin.username),"xxxxxxx");

这不坏,只是不像他们的例子那样可读,所以我的问题是如何加载属性文件,以便我可以像他们一样使用关键字.
另外,我正在考虑使用Page Object Design Pattern,所以如果我这样做,我会定义一个PageObject Base类,它会加载
属性文件然后扩展基础的所有页面对象类都可以访问属性,这听起来有道理吗?

解决方法

在java中,因为’.’作为一个运算符有意义,你不能让它看起来像他们的例子(不确定他们得到了什么).你可以这样做:

设置代码:

public class Config {
  public static String admin_username;

  static {
    Properties props = ...;
    admin_username = props.getProperty("admin.username");
  }
}

使用代码:

import static Config.*;

selenium.type(admin_username,"xxxxxxxx");

如果你真的疯了,你可以使用反射加载Config类(删除“静态”块中的样板).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读