使用C#,selenium RC和xpath - 我可以获得页面上所有链接的文本

时间:2013-08-13 16:12:31

标签: c# xpath selenium-rc xpath-2.0

我的目标是计算页面上所有链接的数量,然后遍历该计数并获取任何给定页面上所有链接的文本。我也在使用C#(在visual studio express中)。

获取页面上可见链接文本的xpath是什么?我用xpath很绿,我不确定我错过了什么。

这是计数变量:

decimal count = selenium.GetXpathCount("//a[@href]");

因此,返回页面上具有@href属性的链接数。到现在为止还挺好。但是,在循环中它会向我报告隐藏在页面上的链接文本:

for (int i = 1; i <= count; i++)
{
    linkTxt = selenium.GetText("xpath=(//a[@href][" + i + "])/text()");
    if (selenium.IsPresent("xpath=(//a[@href])[" + i + "]") && selenium.IsVisible("xpath=(//a[@href])[" + i + "]"))
    {
        MessageBox.Show(linkTxt, "Link Text", MessageBoxButton.OK);
    }
}

这应该可行,但我认为问题的一部分是因为//链接的父亲的一些// div不被隐藏,一些//表被隐藏了。

例子html:

<table border="0" cellpadding="0" cellspacing="0" id="tableIDTwo" class="navigation-inside product-rightonly" aria-hidden="false" style="">
<colgroup>
    <col>
    <col>
    <col>        
</colgroup>
<tbody>
    <tr>
        <td>
            <div class="background-orange" id="someID" aria-hidden="false" style="white-space: nowrap;">1</div>
        </td>
        <td align="left" class="header-link" aria-hidden="false" style="vertical-align: middle; white-space: nowrap;">
            <div class="gwt-HTML" id="VisibleLink" aria-hidden="false" style="white-space: nowrap;">
                <a href="javascript:;">Visible Link Text</a>
                <a></a>
            </div>
        </td>
    </tr>    
</tbody>    
</table>
<div>
    <table>
        <tbody>
            <tr>
                <td>
                    <table>
                        <tbody>
                            <tr>
                                <td>
                                    <div>
                                        <div>
                                            <table border="0" cellpadding="0" cellspacing="0" id="tableIDone" class="grid-sf-table-inside" aria-hidden="true" style="display: none;">
                                                <colgroup>
                                                    <col>
                                                    <col>
                                                </colgroup>
                                                <tbody>
                                                    <tr aria-hidden="false" style="">
                                                        <td>
                                                            <div class="gwt-HTML" id="link1(1,0)" aria-hidden="false" style="white-space: normal;">
                                                                <a href="javascript:;">Hidden Link Text</a>
                                                            </div>
                                                        </td>
                                                        <td>             
                                                </tbody>        
                                            </table>
                                        </div>
                                    </div>
                                </td>
                            </tr>
                        </body>
                    </table>
                </td>
            </tr>
        </tbody>
    </table>
</div>

0 个答案:

没有答案