0

配列内のフィールドまたはセレンのその種のフィールドのフィールドの履歴(存在する場合)を取得することは可能ですか? たとえば、ユーザー ID フィールドには、これまでに使用されたすべての ID が表示されます。

これを使用したい目的は、以前に使用されていない新しい ID をすばやく作成することです。たとえば、testID45既に取得されているのでtestID46、新しいものを作成するために使用します。取得した ID を追跡せずにフォームに入力するのは怠惰な方法です。

4

1 に答える 1

1

Selenium を使用して ID を作成する理由がよくわかりません。解決しようとしている問題についてさらに情報を投稿していただければ、より良い回答を提供できると思います。

既存の要素から ID を取得したい場合は、次のようにすることができます。これにより、指定された ID を持つすべての要素が検索INPUTされ、ID が書き出されます。ID を解析して、次に使用する ID を決定できます。一意の新しい ID を生成する方が速いため、これはお勧めしませんが、何らかの理由でこれが必要になる場合があります。

List<WebElement> ids = driver.findElements(By.cssSelector("input[id]"));
for (WebElement id : ids)
{
    System.out.println(id.getAttribute("id"));
}

ページ上で一意になる独自の形式の新しい ID を生成することをお勧めします。これはあなたの目的には十分なはずです。

Random rnd = new Random();
String id = Long.toHexString(rnd.nextLong());
System.out.println("testID-" + id); // e.g. testID-cb8e7bac29ec7c7a

この投稿には、参照できる文字列を生成する他の多くの方法があります。

于 2015-08-19T15:54:44.900 に答える