あなたが提示したように、あなたがダイナミックIDを持っていると仮定すると、まずSeleniumのclickメソッドがlocator引数を取ることに気付きます。簡単な方法は、定数 "gwt-uid-"接頭辞で始まるIDを見つけるロケータを指定することです。あなたは技術のあなたの好みに応じて、あなたのclick
メソッドに引数としてこれらのロケータのいずれかを使用できます。
== XPath ==
//input[starts-with(@id, 'gwt-uid-')]
== CSS ==
css=input[id^='gwt-uid-']
== DOM ==
dom=for each (e in document.getElementsByTagName('input')) if (e.id && (e.id.substr(0, 'gwt-uid-'.length) === 'gwt-uid-')) e
脚注1:私は私の例では、上記のそれはまだ置くことを前提とし、GWTを使用していません<input>
要素のチェックボックス。必要に応じて調整してください。
脚注2:セレンは、アダムが暗示として、正規表現のサポートを提供していますが、それには2つの問題点は、このケースではありますではなく、「正規表現:」:(1)接頭辞は、「正規表現」です。 (2)Seleniumのclick
メソッドはではありません。は正規表現のプレフィックスをまったくサポートしていません! (私の経験的証拠は、ロケータは、セレンに一致する引数が行うだけのテキストを正規表現を使用していないことを示唆している)
すべての動的IDが 'gwt-uid-'で始まっている場合、どのように解決しますか?ほとんどのIDはセッション間で異なるgwt-uid-withsomenumberです。 – Swagatika
私の例の3つすべてが正確に言及しているので、他に何を求めているのか分かりません。 (技術的には、プレフィックスに続く数字は必要ありませんが、誤った一致を得ることはほとんどありません)。 –