5
部分href xpathを使用してHTML表の行をスキャンし、その行の他の列の値でさらにテストを実行しようとしています。キュウリ、JVMステップ定義でCapybaraでHTML表の行を取得する方法
<div id = "blah">
<table>
<tr>
<td><a href="afile?key=HONDA">link</a></td>
<td>29 33 485</td>
<td>45.2934,00 EUR</td>
</tr>
<tr>
<td><a href="afile?key=HONDA">link</a></td>
<td>22 93 485</td>
<td>38.336.934,123 EUR</td>
</tr>
<tr>
<td><a href="afile?key=something_else">link</a></td>
<td>394 27 3844</td>
<td>3.485,2839 EUR</td>
</tr>
</table>
</div>
、私は以下のように非常に簡単にこれを行って(私はルビーを使用して、より快適にしています)
@Given("^if there are...$")
public void if_there_are...() throws Throwable {
...
...
baseTable = driver.findElement(By.id("blah"));
tblRows = baseTable.findElements(By.tagName("tr"));
for(WebElement row : tblRows) {
if (row.findElements(By.xpath(".//a[contains(@href,'key=HONDA')]")).size() > 0) {
List<WebElement> col = row.findElements(By.tagName("td"));
tblData dummyThing = new tblData();
dummyThing.col1 = col.get(0).getText();
dummyThing.col2 = col.get(1).getText();
dummyThing.col3 = col.get(2).getText();
dummyThing.col4 = col.get(3).getText();
dummyThings.add(dummyThing);
}
}
私は無知だここ
page.find('#blah').all('tr').each { |row|
# if row matches xpath then grab that complete row
# so that other column values can be verified
# I am clueless from here
row.find('td').each do { |c|
}
page.find('#blah').all('tr').find(:xpath, ".//a[contains(@href,'key=HONDA')]").each { |r|
#we got the row that matches xpath, let us do something
}
}
こんにちはコ、どのように私はHREFを得るのですかxpathにマッチするリンクの私は一致する行の列の値でいくつかの事をチェックする必要があります。だから、どのように一致する列(値)を取得するのですか? – Bala
通常のファインダーを使ってtrを検査することができます。例が追加されました。 –
セレンのエラー '要素がキャッシュに見つかりません - おそらく、ページが参照されてから変更されました。 'しかし、単に 'tr.text'を置いて' tr.has_selector?... 'を削除すれば動作します。 – Bala