[英]Finding a table's row by some text it contains in column A, and selecting column B in the same row
我正在使用casperjs。 當前頁面上有一個表格,如下所示。 我有字符串"Title of Row 2 which I like"
,我想在包含此字符串的表中搜索該行。
然后單擊該行中的按鈕,即Clicky button 2
<table>
<!-- ...table header... -->
<tr id="row1">
<td>Row 1</td>
<td>Title of Row 1</td>
<td>
<button ... onClick='some javascript function'>Clicky Button 1</button>
</td>
</tr>
<tr id="row 2">
<td>Row 2</td>
<td>Title of Row 2 which I like</td>
<td>
<button ... onClick='some javascript function'>Clicky button 2</button>
</td>
</tr>
</table>
我的想法是:
"Title of Row 2 which I like"
的整個行,以獲取所在行的id
。然后,我組成了一個選擇器,並在該行下方找到了按鈕行。 我已經做到了,這很好。 這就是我的想法。 我只是想知道, 有沒有更多的卡斯帕 (或優雅的 )的方式來做到這一點? 我看了一些功能...似乎無法通過其文本搜索某些內容。 以為像getElementsAttribute()
這樣的東西可以讓我獲取我要查找的行的id
...但是無法找到該行。
您可以使用XPath輕松實現這一目標。 CasperJS提供了XPath實用程序:
var x = require('casper').selectXPath;
因此,您單擊這樣的按鈕:
casper.click(x("//tr[contains(td, 'Title of Row 2 which I like')]//button"));
假設每行只有一個按鈕。 如果按鈕在下一個td
則可以使用
casper.click(x("//tr/td[contains(., 'Title of Row 2 which I like')]/following-sibling::td[1]/button"));
JQuery(如果可用) 具有一個選擇器,該選擇器可根據其text搜索DOM節點 。 為了匹配上面的示例,您可以使用
$(“ td:contains('我喜歡的第2行標題')”)
請注意,它區分大小寫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.