我有一个webtable,我必须获取最后一行。问题是webtable是动态的,所以我不知道行号。我试过下面的代码,但行号是静态的,会失败。
List<WebElement> rows=driver.findElements(By.xpath("//table[1]/tbody/tr[5]"));
答案 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+"]"));
在第一行中,我们从表中获得最后一行计数。
在第二行,我们从表中获得最后一行元素。