2016-09-28 7 views
0

内の文字列の一部が含まれているのであれば、私は特定の要素のidのは、特定の部分が変化し、特定の部分がそうのような一定であると動的に生成されるWebページを持っていますidに既知の値が含まれている特定の要素を探すことができるページで動的なルックアップを試行します。たとえば、ネストされた要素がいくつ存在するかはわからないので、最終的に生成される数値は変わる可能性があります。ですから、@title = derpでなく@idにyyyが含まれているxpathの要素を探したいと思います。どうすればこれを達成できますか?セレンチェック属性は、Java

+0

あなたの条件を満たすテーブルまたは任意の要素だけが欲しいですか? – testerjoe2

答えて

2
driver.findElement(By.xpath("//table[@title='not derp' and contains(@id, 'yyy')]")); 

は、あなたのHTMLスニペットの<table id = "yyytable2" title = 'not derp'>になり、検索条件に一致する最初の要素を検索します。

+0

これは技術的には、最初の要素だけでなく、最初の 'TABLE'要素を見つけます。 OPが望むものによって異なります。これを簡単に '' * * [@ title ...] 'にして汎用的にすることができます。 – JeffC

+0

@JeffC真実、私は解明するために答えを編集しました。 –

+0

ありがとうございます。これは非常に役に立ちました – Jrawr

1

使用できるリレーショナル演算子と論理演算子のホストがあります。この場合は、あなたがテーブルの要素を探していると仮定すると、あなたが使用することができます://table[@title='not derp' and contains(@id,'yyyy')]

1

私は、要素を見つけるためにBy.cssSelector()を使用することが非常にあるので、私は、代わりにあなたにcssSelectorを示唆している@title =ないDERPと@idがYYY

が含まれているXPathのことで要素を見つけるしたいと思います性能がBy.xpath()より速い。だからあなたは以下のように試してみるべきです: -

driver.findElement(By.cssSelector("table[id *= 'yyy'][title = 'not derp']"));