0

我是一个新手程序员,非常新手..

我正在尝试编写一个程序来测试我们的网站,并且正在使用 Java 和 Selenium。

问题是我想创建一个“表”或“引用”,它允许我存储可以轻松回调并在不同调用中使用的变量。

我尝试使用 HashMap,但发现它不好,因为当我重新运行测试代码时,每次都会有一个新的 hashmap。我想要一些可以存储值并在下次运行代码时记住它们的东西。

我查看了创建一个 mysql 表,但我不知道如何在创建后从表中调用变量。

我希望这有点道理。:0) 请在下面查看一个示例是否更有用 ++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++

这是我使用的哈希图的示例:

HashMap idTable = new HashMap();
idTable.put("GroupName", new String("Group " + 
              Long.toHexString(Double.doubleToLongBits(Math.random()))));
element = driver.findElement(By.id("name"));
element.sendKeys((String)idTable.get("GroupName"));



仅供参考:这对我不起作用的原因是我希望能够将其包装在“if”语句中;告诉计算机,如果名为“GroupName”的变量已经存在,那么不要再这样做了。但是每次我运行脚本时,我都会调用函数 [HashMap idTable = new HashMap();] 而我不这样做'不知道如何不进行该调用,因为 HashMap 没有保存在任何地方.. 它每次都是新创建的。

谢谢,奥利

不知道在哪里添加这个:但按照这里的第一个建议是我所做的。
HashMap idTable;

try{
ObjectInputStream is = new ObjectInputStream(
new FileInputStream("C:\Documents and Settings\My Documents\Selenium local\hashmap.dat"));
idTable = (HashMap) is.readObject();
}

catch(Exception e){
idTable = new HashMap();
}

然后:

try{
ObjectOutputStream os = new ObjectOutputStream (
new FileOutputStream("C:\Documents and Settings\My Documents\Selenium local\hashmap.dat"));
os.writeObject(idTable);
os.close();
}
catch (Exception e){
}

它有效。:0) 感谢您的帮助!

4

2 回答 2

2

为简单的字符串键/值对使用属性实例。它是一个 Map,类似于 HashMap,但具有用于将其内容读/写到文件的加载和存储方法。这对于简单的测试使用应该绰绰有余。

它通常用于加载配置文件。

于 2012-10-01T21:52:39.963 回答
0

您必须将它们存储在代码中以外的某个地方,因为每当 JVM 关闭时,代码就会再见。两个不错的选择是

  • 使用 SQL 数据库,如果您愿意,可以通过 google 进行更多研究
  • 通过文件,只需将您的 HashMap 数据库写入程序末尾的文件(执行Runtime.addShutdownHook,并将其传递给将哈希图存储到文件的线程),并在代码开头从文件中读取它(如果文件不存在,创建一个新文件,并将一个空的 hashmap 存储到它)
于 2012-10-01T21:14:49.493 回答