0

私は初心者プログラマーで、非常に初心者です。

私は私たちのウェブサイトをテストするプログラムを書こうとしていて、JavaとSeleniumを使用しています。

問題は、簡単にコールバックしてさまざまな呼び出しで使用できる変数を格納できる「テーブル」または「参照」を作成したいということです。

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はどこにも保存されていないため、その呼び出しを行わない方法がわかりません。毎回新しく作成されます。

ありがとう、Orli

これをどこに追加するかわからない:しかし、ここで最初の提案に従うことは私がしたことです。
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(例外e){
}

動作します。:0)助けてくれてありがとう!

4

2 に答える 2

2

単純な文字列のキーと値のペアには、 Propertiesのインスタンスを使用します。これは HashMap のような Map ですが、その内容をファイルに読み書きするための load メソッドと store メソッドがあります。これは、単純なテストの使用には十分すぎるはずです。

構成ファイルのロードによく使用されます。

于 2012-10-01T21:52:39.963 に答える
0

コードは JVM がシャットダウンするたびにバイバイするため、コード以外の場所に保存する必要があります。これを行うための 2 つの適切なオプションは次のとおりです。

  • SQLデータベースを使用して、必要に応じてGoogleでこれをさらに調査してください
  • ファイルを介して、プログラムの最後で HashMap データベースをファイルに書き込むだけで (実行しRuntime.addShutdownHook、ハッシュマップをファイルに保存するスレッドに渡します)、コードの先頭でファイルから読み取らせます (ファイルが存在しない場合、新しいファイルを作成し、空のハッシュマップを保存します)
于 2012-10-01T21:14:49.493 に答える