因此,我正在阅读硒测试设计注意事项文档,并且对下面的“UI映射”部分有疑问:
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类(以删除“静态”块中的样板)。

08-08 01:38
查看更多