Webdriverのxpathを使用して最初のテーブル(table1)を取得するにはどうすればよいですか?
<span id="dynamically generated id" data-id="table1">
<table>
...
</table>
</span>
<span id="dynamically generated id" data-id="table2">
<table>
...
</table>
</span>
私はすべてを得ることができますdata-id
要素ですが、テキスト内でフィルタリングしますtable1
は、正確な要素を取得します。
これはうまくいきませんでした!
driver.findElement(By.xpath("//@*[starts-with(name(),'data-id') [contains(text(),'table1')]]"));
私自身の質問に答える...これは正確な要素を取得するようです。
driver.findElement(By.xpath("//*[@data-id='table1']"))
次のようなテーブルが表示されます。
//span[@data-id='table1']/table
を選択 data-id
属性を付けて、名前table
の子要素を取得します。
cssSelector
も使用できると思います
driver.findElement(By.cssSelector("[data-id='table1']"));
試してみてください(これは xpath:値に文字列が含まれる特定の属性を持つノードを検索します と XPathを使用した属性の取得 )を組み合わせて構築します)
driver.findElement(By.xpath("//*[contains(@data-id, 'table1')]/@data-id"));