如何在selenium中获取Webtable的最后一行

时间:2017-07-06 09:23:39

标签: selenium

我有一个webtable,我必须获取最后一行。问题是webtable是动态的,所以我不知道行号。我试过下面的代码,但行号是静态的,会失败。

List<WebElement> rows=driver.findElements(By.xpath("//table[1]/tbody/tr[5]"));

3 个答案:

答案 0 :(得分:2)

获取最后一个元素使用(locator)[last()]方法,如:

WebElement lastRow =  driver.findElement(By.xpath("(//table[1]/tbody/tr)[last()]"));

是以下的缩写变体:

(locator)[position() = last()]

答案 1 :(得分:0)

public class LastRowFetching {
    public static void main(String[] args) throws ParseException {
        WebDriver driver;
        System.setProperty("webdriver.chrome.driver","G://chromedriver.exe");
        driver= new ChromeDriver();
        driver.get("http://money.rediff.com/gainers/bsc/dailygroupa?");         
        //No.of rows 
        List  rows = driver.findElements(By.xpath(".//*[@id='leftcontainer']/table/tbody/tr/td[1]")); 
        System.out.println("No of rows are : " + rows.size());
        int lastRow = rows.size();

        WebElement lastRowFetch =driver.findElement(By.xpath(".//*[@id='leftcontainer']/table/tbody/tr/td["+lastRowcount+"])"));
        driver.close();
    }
}

答案 2 :(得分:-1)

int lastRowcount=driver.findElement(By.xpath("//table[1]/tbody/")).findElements(By.tagName("tr")).size();
WebElement Lastrow =driver.findElement(By.xpath("//table[1]/tbody/tr["+lastRowcount+"]"));

在第一行中,我们从表中获得最后一行计数。

在第二行,我们从表中获得最后一行元素。