如何使用Selenium Webdriver在表中的不同位置选择多行

时间:2013-09-05 09:18:35

标签: java selenium-webdriver

我正在尝试下面的代码来获取表行,但我需要选择表中不同位置的行。


    @Test
    public void testRowSelectionUsingControlKey() {
        List tableRows = driver.findElements(By.xpath("//table[@class='iceDatTbl']/tbody/tr"));
        for(int i=0; i<tableRows.size(); i++){
            System.out.println(tableRows.get(i).getText());
        }

2 个答案:

答案 0 :(得分:4)

要在表中的不同位置选择表行,您需要使用Action Class,然后可以使用CTRL按钮选择所需的元素。 让我们说我需要选择一个表的第一行和第四行,我会做类似下面的事情:

例如:


    public void testRowSelectionUsingControlKey() {
        List tableRows = driver.findElements(By.xpath("//table[@class='iceDatTbl']/tbody/tr"));
        Actions builder = new Actions(driver);
        builder.click(tableRows.get(1)).keyDown(Keys.CONTROL).click(tableRows.get(4)).keyUp(Keys.CONTROL).build().perform();
    }

答案 1 :(得分:0)

以上示例与Selenium和C#完美配合,下面稍作修改:

public void testRowSelectionUsingControlKey() {
    var tableRows = driver.findElements(By.xpath("//table[@class='iceDatTbl']/tbody/tr"));
    Actions builder = new Actions(driver);
    builder.Click(tableRows[1]).keyDown(Keys.Control).Click(tableRows[4]).keyUp(Keys.Control).Build().Perform();
}