簡體   English   中英

如何為每個表格行選擇第三列?

[英]How can I select the 3rd column for each table row?

我正在嘗試使用WatiN獲取表內的TD值。 問題是我無法通過ID選擇表格(因為它不存在)。 我可以根據班級選擇它嗎?

<TABLE WIDTH="100%" CELLSPACING=0 CELLPADDING=5 BORDER=0 class="TABLEBORDER">
<TR>

<TH class=HEADTEXT>
Target
</TH>
<TH class=HEADTEXT>
Trigger<br>enabled?
</TH>
<TH class=HEADTEXT>
Account
</TH>
<TH class=HEADTEXT>
Password<br>changed?

</TH>
<TH class=HEADTEXT>
Error message<br>(if any)
</TH>
<!-- S_STATUS_ROW -->

<TR>

<TD valign=top class=CELLTEXT>
RACF
</TD>
<TD valign=top class=CELLTEXT>
No
</TD>
<TD valign=top class=CELLTEXT>
USERNAME1
</TD>
<TD valign=top class=CELLTEXT>
Yes
</TD>
<TD valign=top class=CELLTEXT>
&nbsp;

</TD>
<!-- S_STATUS_ROW -->

<TR>

<TD valign=top class=CELLTEXT>
Domain Name
</TD>
<TD valign=top class=CELLTEXT>
No
</TD>
<TD valign=top class=CELLTEXT>
FirstName.LastName
</TD>
<TD valign=top class=CELLTEXT>
Yes
</TD>
<TD valign=top class=CELLTEXT>
&nbsp;

</TD>
<!-- S_STATUS_ROW -->

<TR>

<TD valign=top class=CELLTEXT>
NotesWeb
</TD>
<TD valign=top class=CELLTEXT>
No
</TD>
<TD valign=top class=CELLTEXT>
USERNAME1
</TD>
<TD valign=top class=CELLTEXT>
Yes
</TD>
<TD valign=top class=CELLTEXT>
&nbsp;

</TD>
<!-- S_STATUS_CONTENT_BOTTOM -->
</TABLE>

頁面中還有其他表格。 我感興趣的是唯一一種如上所述格式的文件,並且我只對第3列感興趣(在該列中,是的。如果有問題,則將說“否”)。

上表是唯一一個class = TABLEBORDER的表,如何訪問每個表行的第三列?

您可以使用Find.BySelector("") ,它與JQuery非常相似。 例如:

var element = browser.Element(Find.BySelector("Table TD"));

要識別表,請使用Find.ByClass()

有多種方法可以獲取特定列的值,但為簡單起見,我傾向於僅遍歷表行。 從現在開始和從現在開始的6個月后,您都將很容易理解。

代碼 :將第4列的內容(上述HTML中的Yes值)打印到控制台,循環從1開始,而不是0,因此第一行被忽略,因為TH元素不被視為表格單元格。

IE browser = new IE();
browser.GoTo("[yourURL]");

Table theTable = browser.Table(Find.ByClass("TABLEBORDER"));

for (int i = 1; i < theTable.OwnTableRows.Count; i++)
{
    Console.WriteLine("column value:" + theTable.OwnTableRows[i].TableCells[3].Text);
}

以上已在WatiN2.1,IE9,Win7上進行了測試

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM