私は、オブジェクトを任意の順序で、不明確な回数でキャンバスに追加したり、キャンバスから削除したりできる非常に動的なサイトのテストを行っています。現在のテストでは、特定のタイプのオブジェクトを追跡し、特定の順序でそれらを操作する必要があります。Seleniumを使用してロケータと同じレベルの属性を取得する
私の人生をテスターとして簡単にするために、開発者はすべてのオブジェクトにtest-idを追加します。これはオブジェクトの種類を指定します。 キャンバス上の特定のオブジェクトを追跡するために、オブジェクトごとに一意であるため、IDを取得する必要があります。ですから、現在のテストでは、test-idを使って特定のタイプのすべてのオブジェクトのリストを取得し、それぞれのIDを取得します。
<div test-id="object-type1" id="ember935" class=...>
<div class="ObjectHeader">
<ul>
<li>...</li>
<li>...</li>
</ul>
</div>
</div>
だから、ちょうど私が探しているすべてのIWebElementsのリストを返す
Driver.FindElements(By.CssSelector("*[test-id=object-type1]");
を使用して、すべての要素を取得:これらのオブジェクトのそれぞれの構造は次のようになります。私の問題は、これらの要素からIDを読み取る方法を見つけることができないことです。私が見ることができるのは、以下のノードです。すべてのIDを持つリストを作成することもできますが、test-idを見てフィルタリングすることはできません。
これを行うには、別のリストをお互いに比較したり、似たようなものを比較したりしなければなりませんか?次のコードブロックを使用することができますid
年代を読み、印刷するには
これは素晴らしい動作です!奇妙なことは、それがほぼ正確に私がやったことですが、何らかの理由で私のコードが失敗しました。次のステップは今どこが間違っていたのかを知ることで、私はそれを繰り返さないと思う。どうもありがとう。 –