0

自動化仕様 - Java ベースの WebDriver

こんにちは
、バスの予約を自動化するための Web ドライバー自動化 (Java コード) に取り組んでいます。
これが私のシナリオです....

(1) 出発地と目的地を指定 -完了
(2) 日付を選択 -完了
(3) バスを検索 -完了
(4) 座席を表示して選択 -私はここに行きました

検索結果として、座席を表示するオプションを備えたバスのリストを取得しました。バスのリストは、各行に「 view seat 」という画像を含むdynamic-DataTableに表示されます。viewseat-imageをクリックすると、座席を選択できる座席レイアウトが表示されます。viewseat-images が異なる ID同じクラス名を持っていることがわかりました。ここで、id を使用して、必要なビューシート イメージを見つけてクリックする必要があります。しかし、状況は * データ テーブルが動的であるため、ID が変化し続けるため、静的 ID で検索することができません。


* id は、vieweat-image を別の画像と区別するためのコーディングで唯一の固有のものです。そのため、IDが正しい場合にのみ見つけることができます。

今、私の考えは、一意のクラス名を使用してすべてのvieweat-imagesのランタイムIDを取得し、変数に格納し、IDを使用して要素を見つけることです。
クラス名を使用して、そのデータ テーブル内のすべての画像の ID を取得する可能性があるかどうかを教えてください。

4

4 に答える 4

0
List<WebElement> elements = driver.findElements(By.className("classname"));    

for(WebElement ele : elements) {
    System.out.println(ele.getAttribute("id"));
} 
于 2013-11-07T12:41:11.517 に答える
0
driver.findElement(By.xpath("//a[text()='View seats']")).get(index).click()

この方法を試すことができますが、うまくいくかどうかはわかりません。動的ページの問題を解決できる一般的な方法を探しています。

于 2013-12-16T02:10:43.057 に答える
0

絶対パスを使用して座席の場所を取得することで労力を削減できます。絶対パスを取得するには、「firepath」と呼ばれるプラグインをFirefoxにインストールできます。インストール後、AbsolutePathまたはRelativePathのいずれかを選択するオプションが表示されます. 絶対パスを使用すると、動的に作成される要素を識別するために ID を使用する必要はありません。パスは、タグ内の要素の場所を使用して識別されます。

絶対パスの例: //div/div/div/table/tbody/tr/td[2]/div/input[3]

于 2013-11-07T12:47:54.850 に答える