(data-id) から特定の属性を抽出しようとしている以下のコードがあります。私はセレンを使用するのが初めてで、これに1日以上悩まされています。
これにコンテキストを追加するために、私が達成しようとしていることの背景を少し説明します。
オークションを含む Web ページがあり、オークションには ID があり、オークションのすべてのアイテムには一意の ID がありますが、すべて元のオークション ID にリンクしています。要素の「data-id」属性を抽出しようとしていますが、まだ方法がわかりません。これは、IDを取得しようとしているコードのスニペットです。
<div class="dropdown open">
<a class="dropdown-toggle form-control" href="#" data-toggle="dropdown">
<ul class="dropdown-menu dropdown-menu-form" role="menu">
<li id="liAuction4c42556772376a443736343d">
<label class="checkbox">
<input id="chkAuction4c42556772376a443736343d" class="auction" type="checkbox" data-caption="09-10-2015 10:30:00" data-id="4c42556772376a443736343d" checked="checked"/>
09-10-2015 10:30:00
</label>
</li>
</ul>
</div>
私は多くのフォーラムに参加し、グーグル全体を検索しましたが、うまくいく解決策が見つかりませんでした。そうでなければ、質問を投稿せず、完全なルーキーのように見えます.
私は .getAttribute を使用しようとしましたが、いくつかの問題があり、コードがコンパイルされていません。何かを正しく行っていないと思います。
String dataID = selenium.findElement(By.xpath("//*[starts-with(@id, 'liAuction')]")).getAttribute("data-id");
上記を試みたところ、「findElement」の部分に赤い下線が引かれ、次のメッセージが表示されました。
「Selenium 型のメソッド findElement(By) は定義されていません」。
括弧を次のように変更すると;
String dataID = selenium.findElement(By.xpath("//*[starts-with(@id, 'liAuction')]").getAttribute("data-id"));
「findElement」には下線が引かれなくなりましたが、「.getAttribute」の部分には赤の下線が引かれ、次のメッセージが表示されます。「メソッド getAttribute(String) は By 型に対して未定義です」
ラップトップを窓から投げ捨てようとしていますが、すべてのファイルを失いたくありません。
前もって感謝します
トニー