运维开发网

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

运维开发网 https://www.qedev.com 2020-02-26 08:47 出处:网络 作者:运维开发网整理
所以,我正在阅读selenium测试设计考虑因素文档,我对此处的UI Mapping部分有疑问: http://seleniumhq.org/docs/06_test_design_considerations.html#ui-mapping 他们建议创建一个属性文件,如下所示: admin.username = loginForm:tbUsername admin.loginbutton = l
所以,我正在阅读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类(删除“静态”块中的样板).

0

精彩评论

暂无评论...
验证码 换一张
取 消