如何检查表格中的特定TD是否包含我想要的值?

时间:2015-07-06 07:33:48

标签: java xpath selenium-webdriver

我是这个领域的新手,如果你想在桌面上检查或断言具体包含" WaterBill"我想问你们这些人是怎么做的。例如。 在模块列表视图中,我有列名称" Bill Type"我快速搜索一个WaterBill,我希望所有Bill Type列都有输出WaterBill。如何检查“帐单类型”列中的所有元素是否仅包含WaterBill?我的xpath例如是

/html/body/div[1]/div/div[3]/div/div/div[1]/div/div[2]/div[2]/div/div[3]/div/table/tbody/tr[1]/td[1]

注意:列表视图中的每个帐单类型都有不同的TR,并且在每个TR中,特定的Waterbill总是在TD上[2]

2 个答案:

答案 0 :(得分:0)

假设你有桌子

<table border="1" >
    <tr>
        <td>Table Cell</td>         
        <td>Waterbill</td>
        <td>Table Cell</td>
        <td>Table Cell</td>
        <td>Table Cell</td>
    </tr>
    <tr>
        <td>Table Cell</td>
        <td>Table Cell</td>
        <td>Waterbill</td>
        <td>Table Cell</td>
        <td>Table Cell</td>
    </tr>
    <tr>
        <td>Table Cell</td>
        <td>Table Cell</td>
        <td>Table Cell</td>
        <td>3</td>
        <td>Table Cell</td>
    </tr>
</table>

您可以使用xpath通过跟踪xpat​​h

来查找值td的{​​{1}}
3

如果你的表有id,你可以通过

过滤掉它
'//table/descendant-or-self::td[contains(text(),"3")]'

用于选择第n列,你会这样做

'//table[@id="xyz"]/descendant-or-self::td[contains(text(),"3")]'

在您的特定情况下,xpath将是

'//table[@border=1]/descendant-or-self::tr/child::td[position()=4 and contains(text(),"3")]'

*注意不会选择第2行/第3列

答案 1 :(得分:0)

int count = obj.findElements(By.xpath(&#34; / html / body / div [1] / div / div [3] / div / div / div [1] / div / div [2] / DIV [2] / DIV / DIV [3] / DIV /表/ tbody的/ TR&#34;))尺寸(); //得到没有的数。表中的行

    for(int i=0;i<=count;i++)       //loop as per the count of table
    {
        String a=obj.findElement(By.xpath("/html/body/div[1]/div/div[3]/div/div/div[1]/div/div[2]/div[2]/div/div[3]/div/table/tbody/tr["+i+"]/td[2]")).getText();  //Retrieving the data from the Td of table in to a string
        if(a.contains("WaterBill"))
        {
            System.out.println("contains WaterBill");
        }
        else
        {
            System.out.println("does not contains WaterBill");
        }
    }