如何删除表中的所有行

时间:2018-02-02 10:58:34

标签: c# selenium selenium-webdriver

我有一个用C#编写的自动脚本,用于将数据添加到似乎正常工作的表中,现在想要创建一个测试清理来删除已输入的所有数据。

我想循环查看表格,删除所有可见的条目。

表格中的删除图标包含以下HTML -

<a class="dxbButton_Office2010Silver dxgvCommandColumnItem_Office2010Silver dxgv__cci dxbButtonSys" data-args="[['Delete',0],1]" id="GridView_ExchangeHolidays_DXCBtn2" href="javascript:;" style="font-size: 0pt;"><img title="Delete" class="dx-vam" src="/Images/deletegray.png" alt="Delete" style="height:16px;width:16px;" id="GridView_ExchangeHolidays_DXCBtn2Img"></a>

按钮的XPath是 -

第一个按钮 - // * [@ id =“GridView_ExchangeHolidays_DXCBtn2Img”]

下一个按钮 - // * [@ id =“GridView_ExchangeHolidays_DXCBtn4Img”]

依旧......

有什么想法吗?我最初的想法是计算存在多少行,然后对于每个条目,单击删除按钮,但只是不知道如何去做。一些东西 -

        int rowCount = driver.FindElements(By.XPath("//*[@id='GridView_ExchangeHolidays_DXMainTable']/tbody/tr")).Count;

        for(int i=0; i<rowCount; i++)
        {
            //Code to delete rows here
        }

3 个答案:

答案 0 :(得分:0)

如果删除的图像是动态的,则代码将不起作用

int rowCount = driver.FindElements(By.XPath("//*[@id='GridView_ExchangeHolidays_DXMainTable']/tbody/tr")).Count;

    for(int i=0; i<rowCount; i++)
    {
        driver.findelement(By.Xpath(".//*[@class='dxbButton_Office2010Silver dxgvCommandColumnItem_Office2010Silver dxgv__cci dxbButtonSys']")).click();
        //if delete conformation presents handle using alert method.
    }

答案 1 :(得分:0)

我认为你正在遵循正确的方法。你应该继续这样做。请在下面找到您可以在代码中添加的代码段。

int rowCount = driver.FindElements(By.XPath("//*[@id='GridView_ExchangeHolidays_DXMainTable']/tbody/tr")).Count;

    for(int i=0; i<rowCount; i++)
    {
        driver.FindElement(By.xpath("//*[@id='GridView_ExchangeHolidays_DXMainTable']/tbody/tr[i]/img[@title='Delete']/..a]")).Click();
    }

答案 2 :(得分:0)

首先,您需要计算删除的行数,然后对删除按钮上的每个条目调用Click()进行计算,如下所示:

int rowCount = driver.FindElements(By.XPath("//a[@class='dxbButton_Office2010Silver dxgvCommandColumnItem_Office2010Silver dxgv__cci dxbButtonSys']/img[@class='dx-vam' and starts-with(@id,'GridView_ExchangeHolidays_DXCBtn')]")).Count;
for(int i=0; i<rowCount; i++)
{
    driver.FindElement(By.xpath("//a[@class='dxbButton_Office2010Silver dxgvCommandColumnItem_Office2010Silver dxgv__cci dxbButtonSys']/img[@class='dx-vam' and starts-with(@id,'GridView_ExchangeHolidays_DXCBtn')]")).Click();
}