我试图通过Xpath从我的html中检索出一个值。 对于它的价值,这是一个CRM的网络工具(微软的),它看起来像一个DINAMIC的iFrame根据其栏上选择的链接,改变(客户,上诉等) 通过Xpath获取值
<tbody><tr class="ms-crm-List-Row" oid="{665A4B9C-9658-E611-922C-441EA1745BC2}" otype="10046" otypename="new_contact_content">
\t \t \t <td class="ms-crm-List-NonDataCell" align="center"><input type="checkbox" class="ms-crm-RowCheckBox" id="checkBox_{665A4B9C-9658-E611-922C-441EA1745BC2}" tabindex="0" title="A1" style=" "></td><td class="ms-crm-List-DataCell inner-grid-cellPadding"><nobr class="gridcellpadding"><a href="#" id="gridBodyTable_primaryField_{665A4B9C-9658-E611-922C-441EA1745BC2}_0" target="_self" title="A1" class="ms-crm-List-Link" tabindex="0">A1</a></nobr></td><td class="ms-crm-List-DataCell inner-grid-cellPadding ms-crm-NumbersAndDates"><nobr class="gridcellpadding">02/08/2016 12:50</nobr></td><td class="ms-crm-List-DataCell"><nobr class="gridcellpadding"></nobr></td>
\t \t </tr><tr class="ms-crm-List-Row" oid="{675A4B9C-9658-E611-922C-441EA1745BC2}" otype="10046" otypename="new_contact_content">
\t \t \t <td class="ms-crm-List-NonDataCell" align="center"><input type="checkbox" class="ms-crm-RowCheckBox" id="checkBox_{675A4B9C-9658-E611-922C-441EA1745BC2}" tabindex="0" title="A1.2" style=" "></td><td class="ms-crm-List-DataCell inner-grid-cellPadding"><nobr class="gridcellpadding"><a href="#" id="gridBodyTable_primaryField_{675A4B9C-9658-E611-922C-441EA1745BC2}_1" target="_self" title="A1.2" class="ms-crm-List-Link" tabindex="0">A2</a></nobr></td><td class="ms-crm-List-DataCell inner-grid-cellPadding ms-crm-NumbersAndDates"><nobr class="gridcellpadding">02/08/2016 12:50</nobr></td><td class="ms-crm-List-DataCell"><nobr class="gridcellpadding"></nobr></td>
\t \t </tr><tr class="ms-crm-List-Row" oid="{6B5A4B9C-9658-E611-922C-441EA1745BC2}" otype="10046" otypename="new_contact_content">
\t \t \t <td class="ms-crm-List-NonDataCell" align="center"><input type="checkbox" class="ms-crm-RowCheckBox" id="checkBox_{6B5A4B9C-9658-E611-922C-441EA1745BC2}" tabindex="0" title="A5" style=" "></td><td class="ms-crm-List-DataCell inner-grid-cellPadding"><nobr class="gridcellpadding"><a href="#" id="gridBodyTable_primaryField_{6B5A4B9C-9658-E611-922C-441EA1745BC2}_2" target="_self" title="A5" class="ms-crm-List-Link" tabindex="0">A5</a></nobr></td><td class="ms-crm-List-DataCell inner-grid-cellPadding ms-crm-NumbersAndDates"><nobr class="gridcellpadding">02/08/2016 12:50</nobr></td><td class="ms-crm-List-DataCell"><nobr class="gridcellpadding"></nobr></td>
\t \t </tr><tr class="ms-crm-List-Row" oid="{6C5A4B9C-9658-E611-922C-441EA1745BC2}" otype="10046" otypename="new_contact_content">
\t \t \t <td class="ms-crm-List-NonDataCell" align="center"><input type="checkbox" class="ms-crm-RowCheckBox" id="checkBox_{6C5A4B9C-9658-E611-922C-441EA1745BC2}" tabindex="0" title="A6" style=" "></td><td class="ms-crm-List-DataCell inner-grid-cellPadding"><nobr class="gridcellpadding"><a href="#" id="gridBodyTable_primaryField_{6C5A4B9C-9658-E611-922C-441EA1745BC2}_3" target="_self" title="A6" class="ms-crm-List-Link" tabindex="0">A6</a></nobr></td><td class="ms-crm-List-DataCell inner-grid-cellPadding ms-crm-NumbersAndDates"><nobr class="gridcellpadding">02/08/2016 12:50</nobr></td><td class="ms-crm-List-DataCell"><nobr class="gridcellpadding"></nobr></td>
\t \t </tr><tr class="ms-crm-List-Row" oid="{6D5A4B9C-9658-E611-922C-441EA1745BC2}" otype="10046" otypename="new_contact_content">
\t \t \t <td class="ms-crm-List-NonDataCell" align="center"><input type="checkbox" class="ms-crm-RowCheckBox" id="checkBox_{6D5A4B9C-9658-E611-922C-441EA1745BC2}" tabindex="0" title="A9" style=" "></td><td class="ms-crm-List-DataCell inner-grid-cellPadding"><nobr class="gridcellpadding"><a href="#" id="gridBodyTable_primaryField_{6D5A4B9C-9658-E611-922C-441EA1745BC2}_4" target="_self" title="A9" class="ms-crm-List-Link" tabindex="0">A9</a></nobr></td><td class="ms-crm-List-DataCell inner-grid-cellPadding ms-crm-NumbersAndDates"><nobr class="gridcellpadding">02/08/2016 12:50</nobr></td><td class="ms-crm-List-DataCell"><nobr class="gridcellpadding"></nobr></td>
\t \t </tr></tbody>
我使用:
var nobrValues = _webdriverIE.FindElements(By.XPath("//nobr[@class='gridcellpadding']"));
但结果是0含义没有找到对象。 我也试过:
var _tableOfInterestsCount = _webdriverIE.FindElements(By.XPath("//table[@id='gridBodyTable']/tbody/tr[1]/td"));
var nobrvalues = var nobrValues = _tableOfInterestsCount.FindElements(By.XPath("//nobr[@class='gridcellpadding']"));
但是也没有NOBR的发现(计数为0)。 基本上,我想从我的html中获得下列值中的一个(或全部):A1,A1.2,A5,A6,A9。
在HTML表
<table class="ms-crm-List-Data" cellspacing="0" cellpadding="1" rules="rows" morerecords="0" totalrecordcount="3" allrecordscounted="1" oname="10046" numrecords="3" tabindex="0" primaryfieldname="new_name" summary="foo" border="1" id="gridBodyTable" style="border-style:None;border-collapse:collapse;">
\t \t <colgroup><col width="18px" class="ms-crm-List-CheckBoxColumn"><col width="302" name="new_name" class="ms-crm-List-DataColumn ms-crm-List-SortedColumn"><col width="127" name="createdon" class="ms-crm-List-DataColumn"><col></colgroup><thead><tr class="ms-crm-Hidden-List"><th scope="col" class="ms-crm-Hidden-List"></th><th scope="col" class="ms-crm-Hidden-List">שם</th><th scope="col" class="ms-crm-Hidden-List">created at</th></tr></thead><tbody><tr class="ms-crm-List-Row" oid="{5843AB8E-39F7-E611-BE37-00155D47B163}" otype="10046" otypename="new_contact_content" selected="false">
\t \t \t <td class="ms-crm-List-NonDataCell" align="center"><input type="checkbox" class="ms-crm-RowCheckBox" id="checkBox_{5843AB8E-39F7-E611-BE37-00155D47B163}" tabindex="0" title="1" style=" "></td><td class="ms-crm-List-DataCell inner-grid-cellPadding"><nobr class="gridcellpadding" title="name1"><a href="#" id="gridBodyTable_primaryField_{5843AB8E-39F7-E611-BE37-00155D47B163}_0" target="_self" title="name 1" class="ms-crm-List-Link" tabindex="0">A1</a></nobr></td><td class="ms-crm-List-DataCell inner-grid-cellPadding ms-crm-NumbersAndDates"><nobr class="gridcellpadding" title="20/02/2017 08:55">20/02/2017 08:55</nobr></td><td class="ms-crm-List-DataCell"><nobr class="gridcellpadding"></nobr></td>
\t \t </tr><tr class="ms-crm-List-Row" oid="{5943AB8E-39F7-E611-BE37-00155D47B163}" otype="10046" otypename="new_contact_content" selected="false">
\t \t \t <td class="ms-crm-List-NonDataCell" align="center"><input type="checkbox" class="ms-crm-RowCheckBox" id="checkBox_{5943AB8E-39F7-E611-BE37-00155D47B163}" tabindex="0" title="3" style=" "></td><td class="ms-crm-List-DataCell inner-grid-cellPadding"><nobr class="gridcellpadding" title="A5"><a href="#" id="gridBodyTable_primaryField_{5943AB8E-39F7-E611-BE37-00155D47B163}_1" target="_self" title="3" class="ms-crm-List-Link" tabindex="0">3</a></nobr></td><td class="ms-crm-List-DataCell inner-grid-cellPadding ms-crm-NumbersAndDates"><nobr class="gridcellpadding" title="20/02/2017 08:55">20/02/2017 08:55</nobr></td><td class="ms-crm-List-DataCell"><nobr class="gridcellpadding"></nobr></td>
\t \t </tr><tr class="ms-crm-List-Row" oid="{5A43AB8E-39F7-E611-BE37-00155D47B163}" otype="10046" otypename="new_contact_content" selected="false">
\t \t \t <td class="ms-crm-List-NonDataCell" align="center"><input type="checkbox" class="ms-crm-RowCheckBox" id="checkBox_{5A43AB8E-39F7-E611-BE37-00155D47B163}" tabindex="0" title="9" style=" "></td><td class="ms-crm-List-DataCell inner-grid-cellPadding"><nobr class="gridcellpadding" title="9"><a href="#" id="gridBodyTable_primaryField_{5A43AB8E-39F7-E611-BE37-00155D47B163}_2" target="_self" title="9" class="ms-crm-List-Link" tabindex="0">9</a></nobr></td><td class="ms-crm-List-DataCell inner-grid-cellPadding ms-crm-NumbersAndDates"><nobr class="gridcellpadding">20/02/2017 08:55</nobr></td><td class="ms-crm-List-DataCell"><nobr class="gridcellpadding"></nobr></td>
\t \t </tr></tbody>
\t </table>
感谢详细的解答的价值。 您的选项都不成功。我收到了非静态内容的选项的例外情况。 我感觉我不在正确的页面上。另一方面,我可以认识到有2个tr(意思是两行),但不能获取它的值。 顺便说一句,这是一个CRM(微软的网络工具)。 –
你可以发布异常跟踪吗?另外,检查表格是否在框架内。如果是的话,你可以在这里看看我的答案以获取更多与切换黑白相框有关的详细信息http://stackoverflow.com/a/40759300/2575259 –