4

Firefox Webdriver で Selenium を使用して、(ページの読み込みごとに) 一意の CSS ID を持つページ上の要素を操作していますが、ID は毎回変わるため、それらを使用して要素を見つけることができません。これは、ページが ExtJS で構築された Web アプリケーションであるためです。

Firebug を使用して要素情報を取得しようとしています。

Selenium で各要素を個別に選択できるように、一意の xPath またはセレクターを見つける必要があります。

Firebug を使用して xPath をコピーすると、次のような値が得られます。

//*[@id="ext-gen1302"]

ただし、次にページが読み込まれると、次のようになります。

//*[@id="ext-gen1595"]

そのページでは、すべての要素にこの ID 形式があるため、CSS ID を使用して要素を見つけることはできません。

DOM 内での位置に関する xPath を取得したいのですが、Firebug はそのページのインスタンスに対して一意であるため、ID xPath のみを返します。

/html/body/div[4]/div[3]/div[4]/div/div/div/span[2]/span

Firebug (または同様の速度で動作する別のツール) を取得して、ext-gen ID が変更された後でも Selenium で要素を見つけるために使用できる一意のセレクターを提供するにはどうすればよいですか?

4

3 に答える 3

1

このインスタンスで CSS を使用することをお勧めします。By.cssSelector("span[id^='ext-gen'])

上記のステートメントは、「ext-gen で始まる id を持つ span 要素を選択する」ことを意味します。(より具体的にする必要がある場合は、ご返信ください。お手伝いできるかどうか確認いたします)。

または、XPath を使用する場合は、この回答を参照してください: Xpath for selection html id including random number

于 2013-08-02T17:50:05.003 に答える